.text:000000000002394D		       lea     rax, sub_2CEF0
.text:0000000000023954		       mov     [rdi+4E4h], rax
.text:000000000002395B		       lea     rax, sub_2D100
.text:0000000000023962		       mov     [rdi+4ECh], rax
.text:0000000000023969		       lea     rax, sub_2D2C0
.text:0000000000023970		       mov     [rdi+4F4h], rax
.text:0000000000023977		       lea     rax, sub_2D410
.text:000000000002397E		       mov     [rdi+4FCh], rax
.text:0000000000023985		       lea     rax, sub_2D3A0
.text:000000000002398C		       mov     [rdi+504h], rax
.text:0000000000023993		       lea     rax, sub_2D670
.text:000000000002399A		       mov     [rdi+50Ch], rax
.text:00000000000239A1		       lea     rax, sub_2D7D0
.text:00000000000239A8		       mov     [rdi+514h], rax
.text:00000000000239AF		       lea     rax, sub_2A830
.text:00000000000239B6		       mov     [rdi+51Ch], rax
.text:00000000000239BD		       lea     rax, sub_22330
.text:00000000000239C4		       mov     [rdi+564h], rax
.text:00000000000239CB		       lea     rax, sub_22380
.text:00000000000239D2		       mov     [rdi+56Ch], rax
.text:00000000000239D9		       lea     rax, sub_223D0
.text:00000000000239E0		       mov     [rdi+574h], rax
.text:00000000000239E7		       lea     rax, sub_220B0
.text:00000000000239EE		       mov     [rdi+57Ch], rax
.text:00000000000239F5		       lea     rax, sub_22210
.text:00000000000239FC		       mov     [rdi+584h], rax
.text:0000000000023A03		       lea     rax, sub_224A0
.text:0000000000023A0A		       mov     [rdi+58Ch], rax
.text:0000000000023A11		       lea     rax, sub_225A0
.text:0000000000023A18		       mov     [rdi+594h], rax
.text:0000000000023A1F		       lea     rax, sub_22630
.text:0000000000023A26		       mov     [rdi+59Ch], rax
.text:0000000000023A2D		       lea     rax, sub_22750
.text:0000000000023A34		       mov     [rdi+5A4h], rax
.text:0000000000023A3B		       lea     rax, sub_21C70
.text:0000000000023A42		       mov     [rdi+5ACh], rax
.text:0000000000023A49		       lea     rax, sub_21E00
.text:0000000000023A50		       mov     [rdi+5B4h], rax
.text:0000000000023A57		       lea     rax, sub_220A0
.text:0000000000023A5E		       mov     [rdi+5BCh], rax
.text:0000000000023A65		       lea     rax, sub_22A10
.text:0000000000023A6C		       mov     [rdi+524h], rax
.text:0000000000023A73		       lea     rax, sub_22A00
.text:0000000000023A7A		       mov     [rdi+554h], rax
.text:0000000000023A81		       lea     rax, sub_2CEC0
.text:0000000000023A88		       mov     [rdi+53Ch], rax
.text:0000000000023A8F		       lea     rax, sub_2CEE0
.text:0000000000023A96		       mov     [rdi+52Ch], rax
.text:0000000000023A9D		       lea     rax, sub_2CED0
.text:0000000000023AA4		       mov     [rdi+534h], rax
.text:0000000000023AAB		       lea     rax, sub_229D0
.text:0000000000023AB2		       mov     [rdi+544h], rax
.text:0000000000023AB9		       retn
.text:0000000000023AB9 ; ---------------------------------------------------------------------------
.text:0000000000023ABA		       align 20h
.text:0000000000023AC0
.text:0000000000023AC0 loc_23AC0:			       ; CODE XREF: sub_237C0+Fj
.text:0000000000023AC0		       sub     eax, 5
.text:0000000000023AC3		       cmp     eax, 1
.text:0000000000023AC6		       ja      locret_23DC0
.text:0000000000023ACC		       lea     rax, sub_10BF0
.text:0000000000023AD3		       lea     rdx, sub_26F00
.text:0000000000023ADA		       mov     [rdi+414h], rax
.text:0000000000023AE1		       lea     rax, sub_10DF0
.text:0000000000023AE8		       mov     [rdi+484h], rdx
.text:0000000000023AEF		       mov     [rdi+41Ch], rax
.text:0000000000023AF6		       lea     rax, sub_110B0
.text:0000000000023AFD		       mov     [rdi+424h], rax
.text:0000000000023B04		       lea     rax, sub_189B0
.text:0000000000023B0B		       mov     [rdi+42Ch], rax
.text:0000000000023B12		       lea     rax, sub_11110
.text:0000000000023B19		       mov     [rdi+434h], rax
.text:0000000000023B20		       lea     rax, sub_12260
.text:0000000000023B27		       mov     [rdi+43Ch], rax
.text:0000000000023B2E		       lea     rax, sub_11B40
.text:0000000000023B35		       mov     [rdi+444h], rax
.text:0000000000023B3C		       lea     rax, sub_127B0
.text:0000000000023B43		       mov     [rdi+44Ch], rax
.text:0000000000023B4A		       lea     rax, sub_12980
.text:0000000000023B51		       mov     [rdi+454h], rax
.text:0000000000023B58		       lea     rax, sub_12B00
.text:0000000000023B5F		       mov     [rdi+45Ch], rax
.text:0000000000023B66		       lea     rax, sub_182C0
.text:0000000000023B6D		       mov     [rdi+464h], rax
.text:0000000000023B74		       lea     rax, sub_26EF0
.text:0000000000023B7B		       mov     [rdi+474h], rax
.text:0000000000023B82		       mov     [rdi+47Ch], rax
.text:0000000000023B89		       mov     [rdi+48Ch], rax
.text:0000000000023B90		       lea     rax, sub_12B10
.text:0000000000023B97		       mov     [rdi+46Ch], rax
.text:0000000000023B9E		       lea     rax, sub_18310
.text:0000000000023BA5		       mov     [rdi+4A4h], rax
.text:0000000000023BAC		       lea     rax, sub_182E0
.text:0000000000023BB3		       mov     [rdi+4ACh], rax
.text:0000000000023BBA		       lea     rax, sub_18930
.text:0000000000023BC1		       mov     [rdi+494h], rax
.text:0000000000023BC8		       lea     rax, sub_18710
.text:0000000000023BCF		       mov     [rdi+49Ch], rax
.text:0000000000023BD6		       lea     rax, sub_136C0
.text:0000000000023BDD		       mov     [rdi+52Ch], rax
.text:0000000000023BE4		       lea     rax, sub_136B0
--
.text:000000000002CEF0 sub_2CEF0       proc near	       ; DATA XREF: sub_237C0+18Do
.text:000000000002CEF0		       mov     r8d, ecx
.text:000000000002CEF3		       test    dx, dx
.text:000000000002CEF6		       jnz     short loc_2CF28
.text:000000000002CEF8		       cmp     word ptr	[rdi+392h], 0
.text:000000000002CF00		       mov     dword ptr [rdi+104h], 0
.text:000000000002CF0A		       setz    al
.text:000000000002CF0D		       and     [rdi+0BCh], al
.text:000000000002CF13		       xor     eax, eax
.text:000000000002CF15		       mov     [rdi+392h], ax
.text:000000000002CF1C		       mov     eax, 1
.text:000000000002CF21		       retn
.text:000000000002CF21 ; ---------------------------------------------------------------------------
.text:000000000002CF22		       align 8
.text:000000000002CF28
.text:000000000002CF28 loc_2CF28:			       ; CODE XREF: sub_2CEF0+6j
.text:000000000002CF28		       cmp     dx, 1
.text:000000000002CF2C		       movzx   ecx, word ptr [rsi+6]
.text:000000000002CF30		       setbe   al
.text:000000000002CF33		       setbe   r10b
.text:000000000002CF37		       movzx   eax, al
.text:000000000002CF3A		       cmp     cx, 5
.text:000000000002CF3E		       jz      short loc_2CF90
.text:000000000002CF40		       cmp     byte ptr	[rdi+235h], 10h
.text:000000000002CF47		       jz      loc_2D0B8
.text:000000000002CF4D		       xor     eax, eax
.text:000000000002CF4F		       cmp     cx, 3
.text:000000000002CF53		       setbe   al
.text:000000000002CF56		       and     eax, r10d
.text:000000000002CF59		       mov     ecx, eax
.text:000000000002CF5B
.text:000000000002CF5B loc_2CF5B:			       ; CODE XREF: sub_2CEF0+1D5j
.text:000000000002CF5B		       cmp     dword ptr [rsi+8], 1
.text:000000000002CF5F		       setbe   al
.text:000000000002CF62		       cmp     word ptr	[rsi], 8000h
.text:000000000002CF67		       setnz   r9b
.text:000000000002CF6B		       and     eax, r9d
.text:000000000002CF6E		       cmp     word ptr	[rsi+2], 8000h
.text:000000000002CF74		       setnz   r9b
.text:000000000002CF78		       and     eax, r9d
.text:000000000002CF7B		       movzx   r9d, word ptr [rsi+4]
.text:000000000002CF80		       not     r9d
.text:000000000002CF83		       shr     r9w, 0Fh
.text:000000000002CF88		       and     eax, r9d
.text:000000000002CF8B		       and     eax, r10d
.text:000000000002CF8E		       and     eax, ecx
.text:000000000002CF90
.text:000000000002CF90 loc_2CF90:			       ; CODE XREF: sub_2CEF0+4Ej
.text:000000000002CF90		       test    eax, eax
.text:000000000002CF92		       jz      locret_2D030
.text:000000000002CF98		       movzx   ecx, word ptr [rdi+392h]
.text:000000000002CF9F		       mov     rax, [rdi+38Ah]
.text:000000000002CFA6		       cmp     dx, cx
.text:000000000002CFA9		       setz    dl
.text:000000000002CFAC		       and     dl, [rdi+0BCh]
.text:000000000002CFB2		       mov     [rdi+0BCh], dl
.text:000000000002CFB8		       test    cx, cx
.text:000000000002CFBB		       jnz     short loc_2D038
.text:000000000002CFBD		       mov     dword ptr [rdi+104h], 0
.text:000000000002CFC7
.text:000000000002CFC7 loc_2CFC7:			       ; CODE XREF: sub_2CEF0+1BFj
.text:000000000002CFC7		       movzx   edx, word ptr [rsi+6]
.text:000000000002CFCB		       cmp     dx, 5
.text:000000000002CFCF		       jz      short loc_2CFF4
.text:000000000002CFD1		       movzx   ecx, word ptr [rsi]
.text:000000000002CFD4		       mov     [rdi+104h], r8d
.text:000000000002CFDB		       mov     [rax], cx
.text:000000000002CFDE		       movzx   ecx, word ptr [rsi+2]
.text:000000000002CFE2		       mov     [rax+2],	cx
.text:000000000002CFE6		       movzx   ecx, word ptr [rsi+4]
.text:000000000002CFEA		       mov     [rax+4],	cx
.text:000000000002CFEE		       mov     ecx, [rsi+8]
.text:000000000002CFF1		       mov     [rax+8],	ecx
.text:000000000002CFF4
.text:000000000002CFF4 loc_2CFF4:			       ; CODE XREF: sub_2CEF0+DFj
.text:000000000002CFF4		       cmp     byte ptr	[rdi+235h], 10h
.text:000000000002CFFB		       jz      loc_2D0D0
.text:000000000002D001		       mov     [rax+6],	dx
.text:000000000002D005
.text:000000000002D005 loc_2D005:			       ; CODE XREF: sub_2CEF0+1E7j
.text:000000000002D005		       xor     edx, edx
.text:000000000002D007		       cmp     word ptr	[rsi+6], 5
.text:000000000002D00C		       setnz   dl
.text:000000000002D00F		       mov     [rdi+392h], dx
.text:000000000002D016		       movsx   eax, word ptr [rax+6]
.text:000000000002D01A		       mov     [rdi+0F8h], eax
.text:000000000002D020		       mov     eax, 1
.text:000000000002D025		       retn
.text:000000000002D025 ; ---------------------------------------------------------------------------
.text:000000000002D026		       align 10h
.text:000000000002D030
.text:000000000002D030 locret_2D030:			       ; CODE XREF: sub_2CEF0+A2j
.text:000000000002D030		       retn
.text:000000000002D030 ; ---------------------------------------------------------------------------
.text:000000000002D031		       align 8
.text:000000000002D038
.text:000000000002D038 loc_2D038:			       ; CODE XREF: sub_2CEF0+CBj
.text:000000000002D038		       movzx   ecx, word ptr [rsi]
.text:000000000002D03B		       cmp     [rax], cx
.text:000000000002D03E		       setz    cl
.text:000000000002D041		       and     ecx, edx
.text:000000000002D043		       mov     [rdi+0BCh], cl
.text:000000000002D049		       movzx   edx, word ptr [rsi+2]
.text:000000000002D04D		       cmp     [rax+2],	dx
.text:000000000002D051		       setz    dl
.text:000000000002D054		       and     ecx, edx
.text:000000000002D056		       mov     [rdi+0BCh], cl
.text:000000000002D05C		       movzx   edx, word ptr [rsi+4]
.text:000000000002D060		       cmp     [rax+4],	dx
.text:000000000002D064		       setz    dl
.text:000000000002D067		       and     edx, ecx
.text:000000000002D069		       cmp     byte ptr	[rdi+235h], 10h
.text:000000000002D070		       mov     [rdi+0BCh], dl
.text:000000000002D076		       jz      short loc_2D0E0
.text:000000000002D078		       movzx   ecx, word ptr [rsi+6]
.text:000000000002D07C		       cmp     [rax+6],	cx
.text:000000000002D080		       setz    cl
.text:000000000002D083		       and     edx, ecx
.text:000000000002D085
.text:000000000002D085 loc_2D085:			       ; CODE XREF: sub_2CEF0+204j
.text:000000000002D085		       mov     [rdi+0BCh], dl
.text:000000000002D08B		       mov     ecx, [rsi+8]
.text:000000000002D08E		       cmp     [rax+8],	ecx
.text:000000000002D091		       mov     dword ptr [rdi+104h], 0
.text:000000000002D09B		       setz    cl
.text:000000000002D09E		       and     edx, ecx
.text:000000000002D0A0		       mov     [rdi+0BCh], dl
.text:000000000002D0A6		       xor     edx, edx
.text:000000000002D0A8		       mov     [rdi+392h], dx
.text:000000000002D0AF		       jmp     loc_2CFC7
.text:000000000002D0AF ; ---------------------------------------------------------------------------
.text:000000000002D0B4		       align 8
.text:000000000002D0B8
.text:000000000002D0B8 loc_2D0B8:			       ; CODE XREF: sub_2CEF0+57j
.text:000000000002D0B8		       cmp     cx, 1
.text:000000000002D0BC		       setbe   cl
.text:000000000002D0BF		       movzx   ecx, cl
.text:000000000002D0C2		       and     ecx, r10d
.text:000000000002D0C5		       jmp     loc_2CF5B
.text:000000000002D0C5 ; ---------------------------------------------------------------------------
.text:000000000002D0CA		       align 10h
.text:000000000002D0D0
.text:000000000002D0D0 loc_2D0D0:			       ; CODE XREF: sub_2CEF0+10Bj
.text:000000000002D0D0		       add     edx, 1
.text:000000000002D0D3		       mov     [rax+6],	dx
.text:000000000002D0D7		       jmp     loc_2D005
.text:000000000002D0D7 ; ---------------------------------------------------------------------------
.text:000000000002D0DC		       align 20h
.text:000000000002D0E0
.text:000000000002D0E0 loc_2D0E0:			       ; CODE XREF: sub_2CEF0+186j
.text:000000000002D0E0		       movsx   ecx, word ptr [rsi+6]
.text:000000000002D0E4		       movsx   r9d, word ptr [rax+6]
.text:000000000002D0E9		       add     ecx, 1
.text:000000000002D0EC		       cmp     ecx, r9d
.text:000000000002D0EF		       setz    cl
.text:000000000002D0F2		       and     edx, ecx
.text:000000000002D0F4		       jmp     short loc_2D085
.text:000000000002D0F4 sub_2CEF0       endp
.text:000000000002D0F4
.text:000000000002D0F4 ; ---------------------------------------------------------------------------
.text:000000000002D0F6		       align 20h
.text:000000000002D100
.text:000000000002D100 ; =============== S U B R O U T I N E =======================================
.text:000000000002D100
.text:000000000002D100
.text:000000000002D100 sub_2D100       proc near	       ; DATA XREF: sub_237C0+19Bo
.text:000000000002D100		       cmp     dx, 1
.text:000000000002D104		       mov     r8, rdi
.text:000000000002D107		       setbe   cl
.text:000000000002D10A		       movzx   eax, cl
.text:000000000002D10D		       test    dx, dx
.text:000000000002D110		       jz      short loc_2D14C
.text:000000000002D112		       cmp     dword ptr [rsi],	2
.text:000000000002D115		       setbe   al
.text:000000000002D118		       cmp     dword ptr [rsi+4], 2
.text:000000000002D11C		       setbe   dil
.text:000000000002D120		       and     eax, edi
.text:000000000002D122		       and     eax, ecx
.text:000000000002D124		       cmp     byte ptr	[r8+235h], 10h
.text:000000000002D12C		       jz      short loc_2D141
.text:000000000002D12E		       cmp     dword ptr [rsi+8], 2
.text:000000000002D132		       setbe   cl
.text:000000000002D135		       cmp     dword ptr [rsi+0Ch], 2
.text:000000000002D139		       setbe   dil
.text:000000000002D13D		       and     ecx, edi
.text:000000000002D13F		       and     eax, ecx
.text:000000000002D141
.text:000000000002D141 loc_2D141:			       ; CODE XREF: sub_2D100+2Cj
.text:000000000002D141		       xor     ecx, ecx
.text:000000000002D143		       cmp     dword ptr [rsi+14h], 2
.text:000000000002D147		       setbe   cl
.text:000000000002D14A		       and     eax, ecx
.text:000000000002D14C
.text:000000000002D14C loc_2D14C:			       ; CODE XREF: sub_2D100+10j
.text:000000000002D14C		       test    eax, eax
.text:000000000002D14E		       jz      locret_2D21A
.text:000000000002D154		       movzx   edi, word ptr [r8+39Eh]
.text:000000000002D15C		       cmp     di, dx
.text:000000000002D15F		       setz    cl
.text:000000000002D162		       and     cl, [r8+0BCh]
.text:000000000002D169		       mov     [r8+0BCh], cl
.text:000000000002D170		       test    di, di
.text:000000000002D173		       jz      loc_2D220
.text:000000000002D179		       test    dx, dx
.text:000000000002D17C		       jz      loc_2D210
.text:000000000002D182		       movzx   r9d, byte ptr [r8+235h]
.text:000000000002D18A		       mov     rdi, [r8+396h]
.text:000000000002D191		       mov     r10d, [rsi]
.text:000000000002D194		       cmp     r9b, 10h
.text:000000000002D198		       jz      loc_2D288
.text:000000000002D19E		       cmp     [rdi], r10d
.text:000000000002D1A1		       setz    r10b
.text:000000000002D1A5		       and     ecx, r10d
.text:000000000002D1A8		       mov     [r8+0BCh], cl
.text:000000000002D1AF		       mov     r11d, [rsi+4]
.text:000000000002D1B3		       cmp     [rdi+4],	r11d
.text:000000000002D1B7		       setz    r10b
.text:000000000002D1BB		       and     r10d, ecx
.text:000000000002D1BE		       mov     [r8+0BCh], r10b
.text:000000000002D1C5		       mov     ecx, [rsi+8]
.text:000000000002D1C8		       cmp     [rdi+8],	ecx
.text:000000000002D1CB		       setz    cl
.text:000000000002D1CE		       and     r10d, ecx
.text:000000000002D1D1		       mov     [r8+0BCh], r10b
.text:000000000002D1D8		       mov     ecx, [rsi+0Ch]
.text:000000000002D1DB		       cmp     [rdi+0Ch], ecx
.text:000000000002D1DE		       setz    cl
.text:000000000002D1E1		       and     ecx, r10d
.text:000000000002D1E4		       mov     [r8+0BCh], cl
.text:000000000002D1EB
.text:000000000002D1EB loc_2D1EB:			       ; CODE XREF: sub_2D100+1ADj
.text:000000000002D1EB		       mov     r11d, [rsi+14h]
.text:000000000002D1EF		       cmp     [rdi+14h], r11d
.text:000000000002D1F3		       mov     [r8+39Eh], dx
.text:000000000002D1FB		       setz    r10b
.text:000000000002D1FF		       and     ecx, r10d
.text:000000000002D202		       mov     [r8+0BCh], cl
.text:000000000002D209		       jmp     short loc_2D241
.text:000000000002D209 ; ---------------------------------------------------------------------------
.text:000000000002D20B		       align 10h
.text:000000000002D210
.text:000000000002D210 loc_2D210:			       ; CODE XREF: sub_2D100+7Cj
.text:000000000002D210		       xor     edx, edx
.text:000000000002D212		       mov     [r8+39Eh], dx
.text:000000000002D21A
.text:000000000002D21A locret_2D21A:			       ; CODE XREF: sub_2D100+4Ej
.text:000000000002D21A					       ; sub_2D100+12Bj ...
.text:000000000002D21A		       retn
.text:000000000002D21A ; ---------------------------------------------------------------------------
.text:000000000002D21B		       align 20h
.text:000000000002D220
.text:000000000002D220 loc_2D220:			       ; CODE XREF: sub_2D100+73j
.text:000000000002D220		       mov     [r8+39Eh], dx
.text:000000000002D228		       test    rsi, rsi
.text:000000000002D22B		       jz      short locret_2D21A
.text:000000000002D22D		       test    dx, dx
.text:000000000002D230		       jz      short locret_2D21A
.text:000000000002D232		       movzx   r9d, byte ptr [r8+235h]
