Function at 0x42ffc0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x34
mov al, byte [esp + 0x40]
or al, byte [esp + 0x44]
mov byte [esp + 0x30], al
jne 0x42ffe1
push 0
push 0
call fcn.0042f570
add esp, 8
add esp, 0x34
ret
mov eax, dword fs:[0x2c]
push esi
mov esi, dword [0x62271c]
mov dword [esp + 0x30], esi
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x814], 0
jne 0x430346
push 0x1400
call fcn.004ec50a
mov ecx, dword fs:[0x2c]
add esp, 4
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x814], eax
test eax, eax
je 0x4305b7
push 0x2800
call fcn.004ec50a
mov ecx, dword fs:[0x2c]
add esp, 4
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x818], eax
test eax, eax
je 0x4305b7
push 0x20000
call fcn.004ec50a
mov ecx, dword fs:[0x2c]
add esp, 4
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x828], eax
test eax, eax
je 0x4305b7
push 0x40000
call fcn.004ec50a
mov ecx, dword fs:[0x2c]
add esp, 4
mov edx, dword [ecx + esi*4]
mov dword [edx + 0x824], eax
test eax, eax
je 0x4305b7
cmp byte [edx + 0x2198], 0
jne 0x4300ab
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
mov eax, dword [eax + 0x864]
add eax, eax
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, dword fs:[0x2c]
add esp, 4
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0x820], eax
test eax, eax
je 0x4305b7
push 0x1400
push 0
push dword [ecx + 0x814]
call sub.VCRUNTIME140.dll_memset
mov eax, dword fs:[0x2c]
push 0x2800
push 0
mov eax, dword [eax + esi*4]
push dword [eax + 0x818]
call sub.VCRUNTIME140.dll_memset
mov eax, dword fs:[0x2c]
add esp, 0x18
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0x15c], 3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcb0], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcc4], 2
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0x170], 0xc
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcd8], 4
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcec], 8
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0x148], 0x30
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xc88], 0x10
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xc9c], 0x20
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0x724], 0x40
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0x738], 0x80
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x24c], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x164c], 2
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x468], 4
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x1868], 8
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x350], 0x10
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x1840], 0x20
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x1b24], 0x40
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x1b38], 0x80
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x4302c9
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
lea ecx, [eax + 0x15c]
mov eax, dword [eax + 0x814]
mov dword [eax + 0xb54], ecx
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x4302fd
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
lea ecx, [eax + 0x160]
mov eax, dword [eax + 0x814]
mov dword [eax + 0x190], ecx
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x430331
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
lea ecx, [eax + 0x164]
mov eax, dword [eax + 0x814]
mov dword [eax + 0xb40], ecx
push ebp
push edi
xor ecx, ecx
mov ebp, 0x7fff
nop
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov word [eax + ecx + 6], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + ecx + 9], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + ecx + 0xa], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + ecx + 0xb], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
and byte [eax + ecx + 0xc], 8
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + ecx + 0x13], 0
add ecx, 0x14
cmp ecx, 0x1400
jl 0x430350
xor ecx, ecx
nop dword [eax]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov word [eax + ecx + 6], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + ecx + 9], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + ecx + 0xa], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + ecx + 0xb], 0
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
and byte [eax + ecx + 0xc], 8
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + ecx + 0x13], 0
add ecx, 0x14
cmp ecx, 0x2800
jl 0x4303e0
mov edx, dword [0x5230cc]
xor edi, edi
push ebx
test edx, edx
jle 0x4304b4
mov ebx, 0x1fe
nop dword [eax]
movzx ecx, word [edi*8 + 0x523064]
lea eax, [ecx - 1]
cmp ax, bx
ja 0x4304af
mov eax, dword fs:[0x2c]
mov edx, dword [eax + esi*4]
mov eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
mov byte [eax + ecx*4 + 0x13], 1
mov edx, dword [0x5230cc]
inc edi
cmp edi, edx
jl 0x430480
xor ecx, ecx
nop word [eax + eax]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x828]
mov word [ecx + eax], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x828]
mov word [eax + ecx + 2], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x828]
mov word [eax + ecx + 4], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x828]
mov word [ecx + eax + 6], bp
add ecx, 8
cmp ecx, 0x20000
jl 0x4304c0
xor ecx, ecx
nop dword [eax]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x824]
mov word [ecx + eax], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x824]
mov word [eax + ecx + 2], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x824]
mov word [eax + ecx + 4], bp
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x824]
mov word [ecx + eax + 6], bp
add ecx, 8
cmp ecx, 0x40000
jl 0x430520
xor edi, edi
nop dword [eax]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x43059f
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
cmp edi, dword [eax + 0x864]
jge 0x4305c0
mov eax, dword [eax + 0x820]
mov word [eax + edi*2], bp
inc edi
jmp 0x430580
pop esi
add esp, 0x34
jmp fcn.004328a0
cmp byte [eax + 0x2198], 0
jne 0x4305d5
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
mov edx, 0xc
xor ecx, ecx
mov eax, dword [eax + 0x884]
movzx eax, word [eax]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ec50a
mov ecx, dword [esp + 0x50]
xor ebx, ebx
mov dword [esp + 0x38], eax
add esp, 4
xor eax, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], eax
test ecx, ecx
jle 0x431081
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
add ebp, 6
mov dword [esp + 0x38], 0x1ff
nop dword [eax]
mov edi, dword [edx + eax*4]
mov al, byte [edi + 0x12]
dec al
cmp al, 2
ja 0x430a10
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x43065b
call fcn.004ebad3
mov ecx, dword [esp + 0x4c]
mov eax, dword fs:[0x2c]
mov edx, dword [eax + esi*4]
cmp byte [edx + 0x134], 0
je 0x4306a1
cmp word [edi + 6], 0
jne 0x430a0c
mov eax, dword [edi + 0x20]
test eax, eax
je 0x430a0c
cmp byte [eax + 0x21], 0
jne 0x430695
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x430683
jmp 0x430a0c
lea eax, [edi + 6]
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0x20]
jmp 0x430704
cmp word [edi + 6], 0
lea ecx, [edi + 6]
mov dword [esp + 0x50], ecx
je 0x4306f5
cmp byte [edi + 0x19], 0
je 0x430a08
mov al, byte [edi + 0x10]
test al, al
jne 0x4306cb
cmp word [edi + 8], 0
je 0x430a08
movzx ecx, word [edi + 8]
cmp cx, word [esp + 0x38]
ja 0x430a08
test al, al
jne 0x430716
mov eax, ecx
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
lea ebx, [eax + ecx*4]
mov byte [ebx + 0x13], 1
jmp 0x430946
mov eax, dword [edi + 0x20]
mov dword [esp + 0x50], ecx
test eax, eax
je 0x430a08
cmp byte [eax + 0x20], 0
jne 0x4306b9
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x430704
jmp 0x430a08
mov edx, dword [edx + 0x814]
movzx ecx, al
lea eax, [ecx + ecx*4]
lea ebx, [edx + eax*4]
sub ecx, 0x10
je 0x43089f
sub ecx, 1
je 0x4307ef
sub ecx, 1
jne 0x430946
mov byte [edx + 0xcda], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcee], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x46a], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x186a], 1
cmp byte [edi + 0x16], cl
je 0x430946
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcdb], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcef], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x46b], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x186b], 1
jmp 0x430946
mov byte [edx + 0xcb2], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcc6], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x24e], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x164e], 1
cmp byte [edi + 0x16], 0
je 0x430946
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcb3], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xcc7], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x24f], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x164f], 1
jmp 0x430946
mov byte [edx + 0xc8a], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xc9e], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x352], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x1842], 1
cmp byte [edi + 0x16], 0
je 0x430946
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xc8b], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
mov byte [eax + 0xc9f], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x353], 1
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x818]
mov byte [eax + 0x1843], 1
mov byte [ebx + 0xa], 1
cmp byte [edi + 0x16], 0
movzx eax, word [edi + 4]
mov dword [esp + 0x54], eax
je 0x430965
or eax, 0x8000
mov byte [ebx + 0xb], 1
mov dword [esp + 0x54], eax
mov cl, byte [edi + 0x11]
mov dword [esp + 0x2c], ecx
test cl, cl
jne 0x43097b
cmp word [edi + 0xa], 0
jne 0x43097b
xor al, al
jmp 0x43097d
mov al, 1
cmp byte [ebx + 8], 0
je 0x430a98
cmp byte [edi + 0xf], 0
jne 0x430a98
test al, al
jne 0x430aa0
test byte [edi + 0x13], 2
jne 0x4309b3
movzx eax, word [edi + 8]
push 0
push eax
movzx eax, byte [edi + 0x10]
push eax
call fcn.00435e40
add esp, 0xc
cmp byte [edi + 0xf], 0
jne 0x4309c3
test byte [edi + 0x13], 2
je 0x4309c3
or byte [ebx + 0xc], 1
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x24]
movzx ecx, word [eax]
mov eax, dword [esp + 0x54]
test cx, cx
movzx eax, ax
mov edx, ecx
cmove edx, eax
inc ebx
mov word [ebp + 4], dx
mov al, byte [edi + 0x10]
mov byte [ebp], al
mov ax, word [edi + 8]
mov word [ebp + 2], ax
mov eax, dword [edi]
mov dword [ebp - 6], eax
mov al, byte [edi + 0xe]
mov byte [ebp - 2], al
mov al, byte [edi + 0x15]
mov byte [ebp - 1], al
add ebp, 0xc
mov dword [esp + 0x24], ebx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, ecx
jl 0x430630
test ebx, ebx
je 0x43107c
mov ebp, dword [esp + 0x34]
push 0x4369e0
push 0xc
push ebx
push ebp
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
add esp, 0x10
test ebx, ebx
jle 0x43107c
mov edi, ebp
mov ecx, 0x7ff9
nop
movzx ebp, word [edi + 0xa]
mov ax, bp
and ebp, 0x7fff
shr ax, 0xf
mov word [esp + 0x12], ax
mov dword [esp + 0x28], ebp
cmp bp, cx
ja 0x430bdf
mov eax, dword fs:[0x2c]
mov cl, byte [edi + 6]
mov edx, dword [eax + esi*4]
test cl, cl
je 0x430b71
movzx eax, cl
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x814]
jmp 0x430b7e
test al, al
je 0x4309b3
mov eax, dword fs:[0x2c]
mov edx, dword [eax + esi*4]
test cl, cl
je 0x430b03
movzx eax, cl
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x814]
cmp byte [eax + ecx*4 + 8], 0
lea eax, [eax + ecx*4]
je 0x430ad8
push 1
push 0
push dword [esp + 0x34]
call fcn.00435e40
add esp, 0xc
jmp 0x430b58
mov byte [eax + 9], 1
test byte [edi + 0x13], 1
je 0x430b58
mov eax, dword fs:[0x2c]
mov edx, dword [eax + esi*4]
movzx eax, byte [edi + 0x11]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x814]
or byte [eax + ecx*4 + 0xc], 1
jmp 0x430b58
movzx eax, word [edi + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
mov byte [eax + ecx*4 + 9], 1
cmp byte [eax + ecx*4 + 8], 0
jne 0x430b58
test byte [edi + 0x13], 1
je 0x430b3d
mov eax, dword fs:[0x2c]
mov edx, dword [eax + esi*4]
movzx eax, word [edi + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
or byte [eax + ecx*4 + 0xc], 1
mov eax, dword fs:[0x2c]
mov edx, dword [eax + esi*4]
movzx eax, word [edi + 0xa]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
mov byte [eax + ecx*4 + 0x13], 1
movzx eax, word [ebx + 6]
mov word [edi + 0xc], ax
movzx eax, word [edi + 4]
mov word [ebx + 6], ax
mov ebx, dword [esp + 0x24]
jmp 0x430a08
movzx eax, word [edi + 8]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x818]
lea edx, [eax + ecx*4]
movzx eax, word [edx + 6]
add edx, 6
mov ecx, 0x7fff
mov ebx, eax
cmp ax, cx
je 0x430bce
mov ebp, dword [esp + 0x48]
mov ecx, eax
mov esi, 0x7fff
nop
movzx eax, cx
mov eax, dword [ebp + eax*4]
cmp byte [eax + 0x11], 0
jne 0x430bb7
cmp word [eax + 0xa], 0
movzx ebx, cx
je 0x430bc6
lea edx, [eax + 0xc]
movzx eax, word [edx]
mov ecx, eax
mov ebx, eax
cmp ax, si
jne 0x430ba0
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x48]
movzx eax, bp
mov eax, dword [ecx + eax*4]
mov word [eax + 0xc], bx
mov word [edx], bp
mov al, byte [edi + 4]
mov ebx, dword [edi]
mov dword [esp + 0x2c], ebx
test al, al
je 0x430bfb
push eax
call fcn.0043d060
add esp, 4
or ebx, eax
mov dword [esp + 0x2c], ebx
cmp byte [edi + 5], 0
je 0x430c05
xor cl, cl
jmp 0x430c16
push dword [edi]
call fcn.0043d010
mov cl, byte [edi + 4]
add esp, 4
or cl, al
not cl
movzx eax, cl
lea ebp, [edi + 0xa]
mov dword [esp + 0x20], 0
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x38], eax
mov eax, ebx
mov byte [esp + 0x50], cl
mov edx, eax
mov dword [esp + 0x18], 0
mov ecx, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], 0
nop
test dword [esp + 0x38], ebx
jne 0x43103b
push ebx
call fcn.0043d060
and eax, dword [esp + 0x30]
add esp, 4
cmp dword [esp + 0x2c], eax
jne 0x43102f
mov al, byte [edi + 4]
test al, al
je 0x430c87
movzx ecx, al
mov eax, ecx
and eax, ebx
cmp ecx, eax
jne 0x43102f
mov eax, dword fs:[0x2c]
mov cl, byte [edi + 6]
mov byte [esp + 0x54], cl
mov edx, dword [eax + esi*4]
test cl, cl
je 0x430caa
mov eax, dword [edx + 0x828]
movzx ecx, cl
add ecx, dword [esp + 0x1c]
jmp 0x430cb8
movzx ecx, word [edi + 8]
add ecx, dword [esp + 0x14]
mov eax, dword [edx + 0x824]
movzx ebx, word [eax + ecx*2]
lea eax, [eax + ecx*2]
mov dword [esp + 0x30], eax
mov eax, 0x7fff
cmp bx, ax
je 0x430e5f
and ebx, eax
cmp byte [edx + 0x2198], 0
jne 0x430ce1
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx + 0x884]
cmp dx, word [eax]
jae case.0x430e8f.19
cmp byte [ecx + 0x2198], 0
jne 0x430d0b
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + esi*4]
mov eax, dword [ecx + 0x884]
cmp bx, word [eax]
jae case.0x430e8f.19
mov eax, dword [esp + 0x30]
movzx edx, word [eax]
mov ax, dx
shr ax, 0xf
cmp byte [esp + 0x12], 0
je 0x430dc5
test al, al
jne 0x430e5f
cmp byte [ecx + 0x2198], al
jne 0x430d51
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x84c]
mov ecx, dword [eax + ebx*4]
mov eax, 0xff
cmp byte [ecx + 0x15], 0
jne 0x430d72
movzx eax, byte [ecx + 0xf]
test dword [esp + 0x38], eax
jne 0x430e5f
mov al, byte [ecx + 0xe]
not al
test byte [edi + 4], al
jne 0x430e5f
mov eax, dword [ecx]
not eax
test dword [edi], eax
je 0x430da9
movzx eax, byte [ecx + 0xf]
push eax
call fcn.0043d060
not eax
add esp, 4
test dword [edi], eax
jne 0x430e5f
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x820]
mov ax, word [ebp]
mov word [ecx + ebx*2], ax
jmp case.0x430e8f.19
test al, al
je 0x430dcd
mov ebx, edx
jmp 0x430df0
mov eax, dword [esp + 0x28]
mov ebp, 0x7fff
mov edx, dword [ecx + 0x820]
movzx eax, ax
cmp word [edx + eax*2], bp
lea ebp, [edi + 0xa]
jne 0x430e5f
movzx ebx, word [edx + ebx*2]
mov eax, 0x7fff
cmp bx, ax
je 0x430e5f
cmp byte [ecx + 0x2198], 0
jne 0x430e0c
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, ebx
and ecx, 0x7fff
mov edx, dword [eax + esi*4]
mov eax, dword [edx + 0x84c]
mov ecx, dword [eax + ecx*4]
cmp byte [ecx + 0x15], 0
jne 0x430e39
mov al, byte [ecx + 0xf]
or al, byte [esp + 0x50]
not al
test al, al
jne 0x430e5f
mov eax, dword [esp + 0x2c]
not eax
test dword [ecx], eax
jne 0x430e5f
movzx eax, byte [edi + 4]
not eax
test byte [ecx + 0xe], al
jne 0x430e5f
mov eax, dword [esp + 0x28]
movzx ecx, ax
mov eax, dword [edx + 0x820]
mov word [eax + ecx*2], bx
cmp byte [esp + 0x54], 0
mov eax, ebp
mov ecx, dword [esp + 0x30]
mov ax, word [eax]
mov word [ecx], ax
je case.0x430e8f.19
movzx eax, byte [edi + 6]
add eax, 0xfffffff0
cmp eax, 0x95
ja case.0x430e8f.19
movzx eax, byte [eax + 0x4311b8]
jmp dword [eax*4 + 0x43119c]
mov eax, dword fs:[0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x828]
movzx eax, word [ebp]
mov word [ecx + edx + 0x148], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x824]
movzx eax, word [ebp]
mov word [ecx + ebx + 0x70], ax
cmp byte [edi + 6], 0xa4
je case.0x430e8f.19
jmp 0x430ee5
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x828]
movzx eax, word [ebp]
mov word [ecx + edx + 0x14a], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x824]
movzx eax, word [ebp]
mov word [ecx + ebx + 0x270], ax
jmp case.0x430e8f.19
mov eax, dword fs:[0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x828]
movzx eax, word [ebp]
mov word [ecx + edx + 0x140], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x824]
movzx eax, word [ebp]
mov word [ecx + ebx + 0x54], ax
cmp byte [edi + 6], 0xa0
je case.0x430e8f.19
jmp 0x430f6f
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x828]
movzx eax, word [ebp]
mov word [ecx + edx + 0x142], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x824]
movzx eax, word [ebp]
mov word [ecx + ebx + 0x26c], ax
jmp case.0x430e8f.19
mov eax, dword fs:[0x2c]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x828]
movzx eax, word [ebp]
mov word [ecx + edx + 0x144], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x824]
movzx eax, word [ebp]
mov word [ecx + ebx + 0x3a], ax
cmp byte [edi + 6], 0xa2
je case.0x430e8f.19
jmp 0x430ff5
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x828]
movzx eax, word [ebp]
mov word [ecx + edx + 0x146], ax
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov ecx, dword [eax + 0x824]
movzx eax, word [ebp]
mov word [ecx + ebx + 0x23a], ax
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ecx, 0x100
inc ebx
add eax, 0x200
mov dword [esp + 0x20], ebx
add edx, 0x400
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
cmp ecx, 0xff00
jle 0x430c50
add edi, 0xc
mov ecx, 0x7ff9
sub dword [esp + 0x24], 1
jne 0x430a50
mov ebp, 0x7fff
push dword [esp + 0x34]
call fcn.004ebb81
mov ecx, dword fs:[0x2c]
add esp, 4
mov eax, dword [ecx + esi*4]
pop ebx
mov eax, dword [eax + 0x814]
cmp byte [eax + 0x14a], 0
je 0x4310e8
movzx edi, word [eax + 0x146]
cmp di, bp
je 0x4310e8
add eax, 0xc86
push eax
call fcn.00432840
mov word [eax], di
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
add eax, 0xc9a
push eax
call fcn.00432840
add esp, 8
mov word [eax], di
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
mov eax, dword [eax + 0x814]
cmp byte [eax + 0x15e], 0
je 0x43113b
movzx edi, word [eax + 0x15a]
cmp di, bp
je 0x43113b
add eax, 0xcae
push eax
call fcn.00432840
mov word [eax], di
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
add eax, 0xcc2
push eax
call fcn.00432840
add esp, 8
mov word [eax], di
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
mov eax, dword [eax + 0x814]
cmp byte [eax + 0x172], 0
je 0x431187
movzx edi, word [eax + 0x16e]
cmp di, bp
je 0x431187
add eax, 0xcd6
push eax
call fcn.00432840
mov word [eax], di
mov eax, dword fs:[0x2c]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x814]
add eax, 0xcea
push eax
call fcn.00432840
add esp, 8
mov word [eax], di
push 0
push dword [esp + 0x40]
call fcn.0042f570
add esp, 8
pop edi
pop ebp
pop esi
add esp, 0x34
ret