Function at 0x43c027
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
mov edx, dword [eax + 0x7c]
push ebx
push esi
mov dword [esp + 0x24], edx
xor edx, edx
push edi
mov edi, ecx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x1c], ecx
mov ecx, dword [eax + 0x88]
test ecx, ecx
sete dl
mov ebx, 1
mov esi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], esi
add edx, ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x60], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x30], edx
mov dword [esp + 0xc], ecx
mov edx, edi
sub edx, ecx
mov ecx, dword [eax + 0x74]
add edx, dword [ebp + 0x10]
shl ebx, cl
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x40], ecx
mov ecx, edx
sub ecx, dword [esp + 0x40]
cmp ecx, ebx
jbe 0x43becd
sub edx, ebx
jmp 0x43bed1
mov edx, dword [esp + 0x40]
cmp dword [eax + 0x14], 0
je 0x43bee1
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x3c], ecx
jmp 0x43bee7
mov dword [esp + 0x3c], edx
mov ecx, edx
mov edx, dword [esp + 0x30]
add edx, ecx
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x48], edx
cmp edx, ecx
jae 0x43befe
mov edx, ecx
mov ebx, dword [esp + 0xc]
add ebx, edx
mov dword [esp + 0x18], edx
add edx, dword [esp + 0x30]
mov dword [esp + 0x40], ebx
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0x10]
add edx, edi
mov dword [esp + 0x20], ebx
mov ebx, dword [ebp + 0xc]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x10], edx
add edx, 0xfffffff8
mov dword [esp + 0x50], edx
mov dword [esp + 0x34], ebx
cmp dword [esp + 0x18], ecx
jne 0x43c690
mov ecx, dword [eax + 0x88]
mov esi, dword [eax + 0x7c]
xor edx, edx
test ecx, ecx
sete dl
mov ebx, 1
mov dword [esp + 0x4c], esi
mov dword [esp + 0x14], edi
lea ecx, [edx + ecx + 1]
mov edx, edi
sub edx, dword [esp + 0xc]
mov dword [esp + 0x6c], ecx
add edx, dword [ebp + 0x10]
mov ecx, dword [eax + 0x74]
shl ebx, cl
mov eax, edx
sub eax, dword [esp + 0x48]
cmp eax, ebx
jbe 0x43bf86
sub edx, ebx
mov dword [esp + 0x48], edx
jmp 0x43bf8e
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x48]
add ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
xor eax, eax
add edx, 0xfffffff8
cmp edi, ecx
sete al
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x40], 0
add edi, eax
mov eax, edi
sub eax, ecx
lea ebx, [edi + 1]
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebx
cmp edx, eax
jbe 0x43bfe5
mov dword [esp + 0x40], edx
mov dword [esp + 0x28], 0
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jbe 0x43bff9
mov dword [esp + 0x40], ecx
mov dword [esp + 0x24], 0
cmp ebx, dword [esp + 0x3c]
jae 0x43c642
mov ecx, dword [ebp + 0x14]
add ecx, 0xfffffffb
mov dword [esp + 0x2c], ecx
lea ecx, [ecx]
mov eax, dword [esp + 0x2c]
lea edx, [edi + 2]
mov dword [esp + 0x44], edx
cmp eax, 3
ja case.default.0x43c020
jmp dword [eax*4 + 0x43cdfc]
push 0xcf1bbcdc
push 0xbb000000
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, esi
call fcn.004b6290
jmp 0x43c080
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x43c031
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x43c031
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x43c031
mov eax, dword [edi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
mov dword [esp + 0x30], eax
mov eax, dword [edi]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
cmp eax, 3
ja case.default.0x43c093
jmp dword [eax*4 + 0x43ce0c]
push 0xcf1bbcdc
push 0xbb000000
mov ecx, dword [ebx + 4]
mov eax, dword [ebx]
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, esi
call fcn.004b6290
jmp 0x43c0f3
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x43c0a4
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x43c0a4
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x43c0a4
mov eax, dword [ebx]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
mov ecx, dword [ebx]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + eax*4]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ebx + ecx*4]
mov ebx, dword [esp + 0x44]
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0xc]
add eax, ebx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x1c]
mov edx, edi
sub edx, dword [esp + 0xc]
mov dword [esp + 0x58], ecx
add ecx, ebx
mov ebx, dword [esp + 0x30]
mov dword [eax + ebx*4], edx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x20]
sub edx, dword [esp + 0xc]
mov dword [eax + ebx*4], edx
mov eax, dword [esp + 0x50]
mov edx, dword [eax]
mov eax, dword [esp + 0x44]
xor ebx, ebx
cmp edx, dword [eax]
mov eax, dword [esp + 0x24]
sete bl
xor edx, edx
cmp edx, eax
sbb edx, edx
neg edx
test edx, ebx
je 0x43c19e
mov edi, dword [esp + 0x44]
mov al, byte [edi - 1]
mov ecx, dword [esp + 0x50]
xor edx, edx
cmp al, byte [ecx - 1]
mov dword [esp + 0x38], 0
sete dl
mov eax, edx
sub edi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edi
sub ecx, eax
jmp 0x43c23e
mov edx, dword [esp + 0x48]
cmp dword [esp + 0x58], edx
jbe 0x43c1b0
mov ebx, dword [esp + 0x5c]
cmp dword [ecx], ebx
je 0x43c1d4
cmp dword [esp + 0x60], edx
jbe 0x43c671
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
cmp dword [ecx], edx
jne 0x43c671
mov edx, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov edi, edx
mov dword [esp + 0x28], eax
mov eax, edi
sub eax, ecx
mov dword [esp + 0x24], eax
add eax, 2
cmp dword [esp + 0x54], ecx
mov dword [esp + 0x38], eax
sbb edx, edx
neg edx
cmp dword [esp + 0x14], edi
mov dword [esp + 0x20], 0
sbb eax, eax
neg eax
test eax, edx
je 0x43c242
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
jmp 0x43c214
mov edi, dword [esp + 0x18]
movzx ebx, byte [edi - 1]
cmp bl, byte [ecx - 1]
jne 0x43c3ac
dec edi
dec ecx
inc edx
cmp dword [esp + 0x54], ecx
mov dword [esp + 0x18], edi
sbb ebx, ebx
neg ebx
cmp eax, edi
sbb edi, edi
neg edi
test edi, ebx
jne 0x43c210
mov dword [esp + 0x20], edx
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
lea edx, [eax + ecx + 4]
lea ecx, [eax + edi + 4]
call fcn.0043d980
mov ecx, dword [esp + 0x20]
lea edx, [ecx + eax + 4]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ebx, edi
sub ebx, ecx
add eax, 0xffffffe0
add ecx, ebx
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x64], eax
cmp ecx, eax
ja 0x43c3b5
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
cmp ebx, 0x10
jbe 0x43c324
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x14]
add ebx, eax
mov dword [esp + 0x50], ebx
mov ebx, dword [ecx + 0x10]
mov dword [eax + 0x10], ebx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x14], ebx
mov ebx, dword [ecx + 0x18]
mov dword [eax + 0x18], ebx
mov ebx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], ebx
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x50]
jae 0x43c320
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
mov dword [eax + 0x10], ebx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x14], ebx
mov ebx, dword [ecx + 0x18]
mov dword [eax + 0x18], ebx
mov ebx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], ebx
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x50]
jb 0x43c2e6
mov ebx, dword [esp + 0x44]
add dword [edx + 0xc], ebx
cmp ebx, 0xffff
jbe 0x43c341
mov eax, dword [edx + 4]
sub eax, dword [edx]
mov dword [edx + 0x24], 1
sar eax, 3
mov dword [edx + 0x28], eax
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x38]
mov word [ecx + 4], bx
mov ecx, dword [edx + 4]
inc eax
mov dword [ecx], eax
mov ecx, dword [esp + 0x20]
lea eax, [ecx - 3]
cmp eax, 0xffff
jbe 0x43c372
mov ebx, dword [edx + 4]
sub ebx, dword [edx]
mov dword [edx + 0x24], 2
sar ebx, 3
mov dword [edx + 0x28], ebx
mov ebx, dword [edx + 4]
add edi, ecx
mov word [ebx + 6], ax
add dword [edx + 4], 8
lea edx, [edi + 1]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], edx
cmp edi, dword [esp + 0x3c]
ja 0x43c634
mov eax, dword [esp + 0x2c]
cmp eax, 3
ja case.default.0x43c3a5
jmp dword [eax*4 + 0x43ce1c]
mov dword [esp + 0x20], edx
jmp 0x43c242
mov esi, eax
mov eax, dword [edx + 0xc]
mov edi, ecx
mov ecx, dword [esp + 0x14]
call fcn.00411f50
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x18]
mov edx, dword [ebp + 8]
jmp 0x43c324
push 0xcf1bbcdc
push 0xbb000000
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebx + eax + 2]
mov eax, dword [ebx + eax + 6]
push eax
push ecx
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, esi
call fcn.004b6290
jmp 0x43c46c
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x34]
mov edx, dword [eax + ecx + 2]
mov eax, dword [eax + ecx + 6]
push 0xcf1bbcdc
push 0xbf9b0000
push eax
mov ebx, 0x40
push edx
sub ebx, esi
call fcn.004a1fa0
mov ecx, ebx
call fcn.004b6290
mov ebx, dword [esp + 0x34]
jmp 0x43c46c
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x43c3df
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x43c3df
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0xc]
mov eax, dword [ebx + eax + 2]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x1c]
add ebx, 2
mov dword [ecx + eax*4], ebx
mov eax, dword [esp + 0x2c]
cmp eax, 3
ja case.default.0x43c483
jmp dword [eax*4 + 0x43ce2c]
mov ecx, dword [edi + 2]
mov eax, dword [edi - 2]
push 0xcf1bbcdc
push 0xbb000000
push ecx
mov ebx, 0x40
push eax
sub ebx, esi
call fcn.004a1fa0
mov ecx, ebx
call fcn.004b6290
jmp 0x43c51b
mov ecx, dword [edi + 2]
mov eax, dword [edi - 2]
push 0xcf1bbcdc
push 0xbf9b0000
push ecx
mov ebx, 0x40
push eax
sub ebx, esi
call fcn.004a1fa0
mov ecx, ebx
call fcn.004b6290
jmp 0x43c51b
push 0xcf1bbcdc
push 0xbfa56300
mov ecx, dword [edi + 2]
mov eax, dword [edi - 2]
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, esi
call fcn.004b6290
jmp 0x43c51b
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x43c4e2
mov eax, dword [edi - 2]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
mov ecx, dword [esp + 0x1c]
mov edx, edi
sub edx, dword [esp + 0xc]
sub edx, 2
mov dword [ecx + eax*4], edx
xor edx, edx
cmp edx, dword [esp + 0x28]
sbb eax, eax
neg eax
test al, 1
je 0x43c634
mov ecx, dword [edi]
mov eax, edi
sub eax, dword [esp + 0x28]
cmp ecx, dword [eax]
jne 0x43c634
mov ebx, dword [esp + 0x10]
lea edx, [eax + 4]
lea ecx, [edi + 4]
call fcn.0043d980
mov edx, dword [esp + 0x24]
mov ecx, dword [ebp + 0x14]
lea ebx, [eax + 4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, edi
sub eax, dword [esp + 0xc]
mov dword [esp + 0x28], edx
mov dword [esp + 0x68], eax
mov eax, edi
call fcn.00412020
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
add edi, ebx
mov dword [ecx + eax*4], edx
mov ecx, dword [esp + 0x14]
lea edx, [edi + 1]
add ebx, 0xfffffffd
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], edx
cmp ecx, esi
ja 0x43c5c8
mov esi, dword [ecx]
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0xc]
mov dword [edx], esi
mov esi, dword [ecx + 4]
mov dword [edx + 4], esi
mov esi, dword [ecx + 8]
mov dword [edx + 8], esi
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
jmp 0x43c5dc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0xc]
mov edi, ecx
call fcn.00411f50
mov edi, dword [esp + 0x18]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov esi, dword [esp + 0x4c]
xor edx, edx
mov word [ecx + 4], dx
mov ecx, dword [eax + 4]
mov dword [ecx], 1
cmp ebx, 0xffff
jbe 0x43c60c
mov edx, dword [eax + 4]
sub edx, dword [eax]
mov dword [eax + 0x24], 2
sar edx, 3
mov dword [eax + 0x28], edx
mov ecx, dword [eax + 4]
mov word [ecx + 6], bx
add dword [eax + 4], 8
cmp dword [esp + 0x3c], edi
mov dword [esp + 0x14], edi
sbb edx, edx
xor eax, eax
inc edx
cmp eax, dword [esp + 0x28]
sbb ecx, ecx
neg ecx
test ecx, edx
jne 0x43c53d
mov ebx, dword [esp + 0x20]
cmp ebx, dword [esp + 0x3c]
jb 0x43c010
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x43c64e
mov eax, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x43c65f
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x10]
sub eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x20]
mov eax, edi
sub eax, dword [esp + 0x14]
shr eax, 7
add eax, dword [esp + 0x6c]
add edi, eax
add ebx, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x20], ebx
jmp 0x43c638
cmp edi, edx
jae 0x43cdca
mov eax, dword [ebp + 0x14]
add eax, 0xfffffffb
mov dword [esp + 0x2c], eax
jmp 0x43c6b4
mov eax, dword [esp + 0x2c]
cmp eax, 3
ja case.default.0x43c6bd
jmp dword [eax*4 + 0x43ce3c]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push 0xcf1bbcdc
push 0xbb000000
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, dword [esp + 0x28]
call fcn.004b6290
jmp 0x43c772
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push 0xcf1bbcdc
push 0xbf9b0000
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, dword [esp + 0x28]
call fcn.004b6290
jmp 0x43c772
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push 0xcf1bbcdc
push 0xbfa56300
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, dword [esp + 0x28]
call fcn.004b6290
jmp 0x43c772
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push 0xcf1bbcdc
push 0xb7a56463
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, dword [esp + 0x28]
call fcn.004b6290
jmp 0x43c772
mov eax, dword [edi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, dword [esp + 0x28]
shr eax, cl
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x4c], ecx
cmp ecx, dword [esp + 0x18]
jb 0x43c78b
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
add edx, ecx
mov dword [esp + 0x38], edx
mov edx, edi
sub edx, dword [esp + 0xc]
mov ecx, edx
sub ecx, dword [esp + 0x20]
mov dword [esp + 0x68], edx
inc ecx
cmp ecx, dword [esp + 0x18]
jb 0x43c7b0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x1c]
mov dword [ebx + eax*4], edx
mov eax, dword [esp + 0x18]
sub eax, ecx
dec eax
cmp eax, 3
sbb eax, eax
inc eax
cmp dword [esp + 0x3c], ecx
sbb ebx, ebx
neg ebx
test ebx, eax
je 0x43c980
mov eax, dword [esp + 0x54]
mov ebx, dword [eax + ecx]
cmp ebx, dword [edi + 1]
jne 0x43c980
mov ebx, dword [esp + 0x10]
cmp ecx, dword [esp + 0x18]
jae 0x43c7fc
mov edx, dword [esp + 0x44]
mov dword [esp + 0x48], edx
jmp 0x43c802
mov edx, ebx
mov dword [esp + 0x48], ebx
lea ecx, [eax + ecx + 4]
lea eax, [edi + 5]
sub eax, ecx
add eax, edx
mov dword [esp + 0x54], ecx
cmp eax, ebx
jae 0x43c817
mov ebx, eax
mov edx, dword [esp + 0x54]
lea ecx, [edi + 5]
call fcn.0043d980
mov dword [esp + 0x4c], eax
add eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x48]
je 0x43c837
mov eax, dword [esp + 0x4c]
jmp 0x43c850
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x10]
lea ecx, [edx + edi + 5]
mov edx, dword [esp + 0x40]
call fcn.0043d980
add eax, dword [esp + 0x4c]
mov edx, dword [ebp + 8]
inc edi
add eax, 4
mov ebx, edi
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x10]
sub ebx, esi
mov dword [esp + 0x14], edi
add eax, 0xffffffe0
lea edi, [ebx + esi]
mov dword [esp + 0x48], eax
cmp edi, eax
ja 0x43c900
mov ecx, dword [esi]
mov eax, dword [edx + 0xc]
mov dword [eax], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
cmp ebx, 0x10
jbe 0x43c911
mov eax, dword [edx + 0xc]
mov edi, dword [esi + 0x10]
lea ecx, [esi + 0x10]
mov dword [eax + 0x10], edi
mov edi, dword [ecx + 4]
mov dword [eax + 0x14], edi
mov edi, dword [ecx + 8]
mov dword [eax + 0x18], edi
mov edi, dword [ecx + 0xc]
lea esi, [eax + ebx]
mov dword [eax + 0x1c], edi
add eax, 0x20
add ecx, 0x10
cmp eax, esi
jae 0x43c911
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
mov edi, dword [ecx + 0x10]
mov dword [eax + 0x10], edi
mov edi, dword [ecx + 0x14]
mov dword [eax + 0x14], edi
mov edi, dword [ecx + 0x18]
mov dword [eax + 0x18], edi
mov edi, dword [ecx + 0x1c]
mov dword [eax + 0x1c], edi
add eax, 0x20
add ecx, 0x20
cmp eax, esi
jb 0x43c8c6
jmp 0x43c911
mov ecx, dword [esp + 0x24]
mov esi, eax
mov eax, dword [edx + 0xc]
call fcn.00411f50
mov edx, dword [ebp + 8]
add dword [edx + 0xc], ebx
cmp ebx, 0xffff
jbe 0x43c92e
mov eax, dword [edx + 4]
sub eax, dword [edx]
mov dword [edx + 0x24], 1
sar eax, 3
mov dword [edx + 0x28], eax
mov ecx, dword [edx + 4]
mov word [ecx + 4], bx
mov eax, dword [edx + 4]
mov dword [eax], 1
mov eax, dword [esp + 0x54]
add eax, 0xfffffffd
cmp eax, 0xffff
jbe 0x43c95e
mov ecx, dword [edx + 4]
sub ecx, dword [edx]
mov dword [edx + 0x24], 2
sar ecx, 3
mov dword [edx + 0x28], ecx
mov ecx, dword [edx + 4]
mov word [ecx + 6], ax
mov eax, dword [esp + 0x14]
add dword [edx + 4], 8
add eax, dword [esp + 0x54]
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], eax
mov edi, eax
jmp 0x43cba8
mov ebx, dword [esp + 0x4c]
cmp ebx, dword [esp + 0x3c]
jb 0x43cde7
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
cmp ecx, dword [edi]
jne 0x43cde7
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
mov ebx, dword [esp + 0x44]
jb 0x43c9ac
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x54], ebx
jb 0x43c9be
mov ecx, dword [esp + 0x40]
sub edx, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
add eax, 4
lea ecx, [edi + 4]
sub ecx, eax
lea eax, [ecx + ebx]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], edx
cmp eax, ecx
jb 0x43c9df
mov eax, ecx
mov edx, dword [esp + 0x38]
mov ebx, eax
add edx, 4
lea ecx, [edi + 4]
call fcn.0043d980
mov ecx, dword [esp + 0x38]
add ecx, 4
mov dword [esp + 0x4c], eax
add eax, ecx
cmp eax, dword [esp + 0x54]
je 0x43ca09
mov eax, dword [esp + 0x4c]
jmp 0x43ca22
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x10]
lea ecx, [edx + edi + 4]
mov edx, dword [esp + 0x40]
call fcn.0043d980
add eax, dword [esp + 0x4c]
lea ecx, [eax + 4]
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
sbb edx, edx
neg edx
cmp esi, edi
sbb eax, eax
neg eax
test eax, edx
je 0x43ca6f
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
movzx ebx, byte [edi - 1]
cmp bl, byte [eax - 1]
jne 0x43ca6b
dec edi
dec eax
inc ecx
cmp edx, eax
sbb ebx, ebx
neg ebx
cmp esi, edi
mov dword [esp + 0x14], edi
sbb edi, edi
neg edi
test edi, ebx
mov edi, dword [esp + 0x14]
jne 0x43ca47
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov ebx, edi
sub ebx, esi
mov dword [esp + 0x34], ecx
add eax, 0xffffffe0
lea ecx, [ebx + esi]
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x48], eax
cmp ecx, eax
ja 0x43cb2c
mov ecx, dword [esi]
mov eax, dword [edx + 0xc]
mov dword [eax], ecx
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 8]
mov dword [eax + 8], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 0xc], ecx
cmp ebx, 0x10
jbe 0x43cb43
mov eax, dword [edx + 0xc]
lea ecx, [esi + 0x10]
lea esi, [eax + ebx]
mov dword [esp + 0x54], esi
mov esi, dword [ecx]
mov dword [eax + 0x10], esi
mov esi, dword [ecx + 4]
mov dword [eax + 0x14], esi
mov esi, dword [ecx + 8]
mov dword [eax + 0x18], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0x1c], esi
add eax, 0x20
add ecx, 0x10
cmp eax, dword [esp + 0x54]
jae 0x43cb43
mov edi, edi
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
mov esi, dword [ecx + 0x10]
mov dword [eax + 0x10], esi
mov esi, dword [ecx + 0x14]
mov dword [eax + 0x14], esi
mov esi, dword [ecx + 0x18]
mov dword [eax + 0x18], esi
mov esi, dword [ecx + 0x1c]
mov dword [eax + 0x1c], esi
add eax, 0x20
add ecx, 0x20
cmp eax, dword [esp + 0x54]
jb 0x43caf0
jmp 0x43cb43
mov esi, eax
mov eax, dword [edx + 0xc]
mov edi, ecx
mov ecx, dword [esp + 0x24]
call fcn.00411f50
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x14]
add dword [edx + 0xc], ebx
cmp ebx, 0xffff
jbe 0x43cb60
mov eax, dword [edx + 4]
sub eax, dword [edx]
mov dword [edx + 0x24], 1
sar eax, 3
mov dword [edx + 0x28], eax
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x58]
mov word [ecx + 4], bx
mov ecx, dword [edx + 4]
add eax, 3
mov dword [ecx], eax
mov ecx, dword [esp + 0x4c]
lea eax, [ecx - 3]
cmp eax, 0xffff
jbe 0x43cb93
mov esi, dword [edx + 4]
sub esi, dword [edx]
mov dword [edx + 0x24], 2
sar esi, 3
mov dword [edx + 0x28], esi
mov esi, dword [edx + 4]
mov word [esi + 6], ax
add dword [edx + 4], 8
add edi, ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x50]
ja 0x43cdbc
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
lea ecx, [eax + 2]
mov dword [esp + 0x68], ecx
mov ecx, dword [ebp + 0x14]
lea eax, [eax + edx + 2]
call fcn.00412020
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x1c]
mov dword [ebx + eax*4], ecx
mov ecx, dword [ebp + 0x14]
mov eax, edi
sub eax, dword [esp + 0xc]
sub eax, 2
mov dword [esp + 0x68], eax
lea eax, [edi - 2]
call fcn.00412020
mov ecx, dword [esp + 0x68]
mov dword [ebx + eax*4], ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
mov eax, edi
sub eax, ecx
mov dword [esp + 0x68], eax
sub eax, dword [esp + 0x34]
cmp eax, edx
jae 0x43cc17
mov ecx, dword [esp + 0x30]
sub edx, eax
dec edx
add ecx, eax
cmp edx, 3
sbb edx, edx
inc edx
cmp dword [esp + 0x3c], eax
sbb esi, esi
neg esi
test esi, edx
je 0x43cdbc
mov edx, dword [ecx]
cmp edx, dword [edi]
jne 0x43cdbc
mov esi, dword [esp + 0x10]
cmp eax, dword [esp + 0x18]
jae 0x43cc50
mov edx, dword [esp + 0x44]
mov dword [esp + 0x54], edx
jmp 0x43cc56
mov edx, esi
mov dword [esp + 0x54], esi
lea eax, [ecx + 4]
lea ecx, [edi + 4]
sub ecx, eax
mov dword [esp + 0x58], eax
lea eax, [ecx + edx]
cmp eax, esi
jb 0x43cc6b
mov eax, esi
mov edx, dword [esp + 0x58]
mov ebx, eax
lea ecx, [edi + 4]
call fcn.0043d980
mov esi, eax
mov eax, dword [esp + 0x58]
lea ecx, [esi + eax]
cmp ecx, dword [esp + 0x54]
je 0x43cc8c
mov eax, esi
jmp 0x43cc9f
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
lea ecx, [esi + edi + 4]
call fcn.0043d980
add eax, esi
mov edx, dword [esp + 0x20]
lea ebx, [eax + 4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x64], ebx
add ebx, 0xfffffffd
mov dword [esp + 0x34], edx
cmp edi, eax
ja 0x43ccdf
mov edx, dword [edi]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
mov dword [ecx], edx
mov edx, dword [edi + 4]
mov dword [ecx + 4], edx
mov edx, dword [edi + 8]
mov dword [ecx + 8], edx
mov edx, dword [edi + 0xc]
mov dword [ecx + 0xc], edx
jmp 0x43ccf7
mov ecx, dword [esp + 0x14]
mov esi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0xc]
call fcn.00411f50
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov esi, dword [esp + 0x28]
xor edx, edx
mov word [ecx + 4], dx
mov ecx, dword [eax + 4]
mov dword [ecx], 1
cmp ebx, 0xffff
jbe 0x43cd27
mov edx, dword [eax + 4]
sub edx, dword [eax]
mov dword [eax + 0x24], 2
sar edx, 3
mov dword [eax + 0x28], edx
mov ecx, dword [eax + 4]
mov word [ecx + 6], bx
add dword [eax + 4], 8
mov eax, dword [esp + 0x2c]
cmp eax, 3
ja case.default.0x43cd3b
jmp dword [eax*4 + 0x43ce4c]
push 0xcf1bbcdc
push 0xbb000000
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push ecx
push eax
call fcn.004a1fa0
mov ecx, 0x40
sub ecx, esi
call fcn.004b6290
jmp 0x43cd9b
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x43cd4c
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x43cd4c
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x43cd4c
mov eax, dword [edi]
imul eax, eax, 0x9e3779b1
mov ecx, 0x20
sub ecx, esi
shr eax, cl
add edi, dword [esp + 0x64]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x68]
mov dword [edx + eax*4], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
cmp edi, dword [esp + 0x50]
jbe 0x43cbfb
mov esi, dword [esp + 0x24]
cmp edi, dword [esp + 0x50]
jb 0x43c6b0
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x10]
pop edi
sub eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
sub eax, esi
sar eax, 8
add eax, dword [esp + 0x60]
add edi, eax
mov dword [esp + 0x14], edi
jmp 0x43cdc0