Function at 0x439640
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc8]
cmp eax, dword [ecx + 8]
jbe 0x43ae05
sub esp, 0x148
xor ebx, ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov eax, dword [esp + 0x14c]
cmp eax, 0
je 0x43adfe
add eax, 0xc
mov dword [esp + 0xd8], eax
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0xdc], ebp
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0xe0], ebp
lea ebx, [esp + 0xd8]
cmp ebx, 0
je 0x43adf7
mov edi, dword [ebx]
mov dword [esp + 0xe4], edi
mov esi, dword [ebx + 4]
mov dword [esp + 0xe8], esi
mov ebp, dword [ebx + 8]
mov dword [esp + 0xec], ebp
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
cmp dword [0x6dad8c], 0
jb 0x439774
ja 0x439709
cmp dword [0x6dad88], 0
jbe 0x439774
call fcn.004531e0
mov edi, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov eax, dword [esp]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x60], eax
xor ecx, ecx
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
cmp ebp, ecx
jle 0x439774
mov dword [esp + 0x64], 0xffffffff
mov edx, 0xffffffff
mov ebx, ecx
cmp ecx, esi
jae 0x43adf0
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov eax, dword [esp + 0x64]
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x18], edx
inc ecx
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
cmp ebp, ecx
jg 0x43973c
xor ebx, ebx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0xf4], ebx
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x14c]
mov ebp, dword [ebx + 4]
mov dword [esp + 0xf0], ebp
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0xf4], ebp
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0xf8], ebp
lea ebx, [esp + 0xf0]
cmp ebx, 0
je 0x43ade9
mov ebp, dword [ebx]
mov dword [esp + 0xfc], ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 0x100], ebp
mov ebp, dword [ebx + 8]
mov dword [esp + 0x104], ebp
mov ecx, 1
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0x34], ecx
cmp ebp, ecx
jle 0x4398c6
call fcn.004538b0
mov edi, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
mov ebp, dword [esp + 0x34]
inc ebp
mov eax, ebx
cmp ebp, 0xffffffff
je 0x4398bf
cdq
idiv ebp
mov ecx, edx
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov ebx, ecx
mov ebp, dword [esp + 0x100]
cmp ecx, ebp
jae 0x4398b8
mov ebp, dword [esp + 0xfc]
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
mov edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x100]
cmp ebx, ebp
jae 0x4398b1
mov ebp, dword [esp + 0xfc]
shl ebx, 1
add ebp, ebx
mov word [ebp], dx
mov edx, dword [esp + 0x34]
mov ebx, ecx
mov ebp, dword [esp + 0x100]
cmp ecx, ebp
jae 0x4398aa
mov ebp, dword [esp + 0xfc]
shl ebx, 1
add ebp, ebx
mov word [ebp], dx
mov ecx, dword [esp + 0x34]
inc ecx
jmp 0x4397f2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
xor ecx, ecx
jmp 0x43983c
xor ebx, ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x10c], ebx
mov dword [esp + 0x110], ebx
mov ebx, dword [esp + 0x14c]
mov ebp, dword [ebx + 8]
mov dword [esp + 0x108], ebp
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0x10c], ebp
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov dword [esp + 0x110], ebp
lea ebx, [esp + 0x108]
cmp ebx, 0
je 0x43ade2
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov ebp, dword [ebx + 8]
mov dword [esp + 0x11c], ebp
mov dword [esp + 0x38], 0
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov ebx, dword [esp + 0x38]
cmp ebp, ebx
jle 0x439ae0
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x100]
cmp ebx, ebp
jae 0x439ad9
mov ebp, dword [esp + 0xfc]
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
cmp ebx, esi
jae 0x439ad2
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0xc8], ebx
cmp edx, 0
jle 0x439a62
mov ebx, edx
dec ebx
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0x44]
sar ebx, 0x1f
mov ebp, dword [esp + 0x50]
sub ebp, ebx
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x50]
sar ebx, 1
cmp ebx, eax
jae 0x439acb
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
cmp ebx, esi
jae 0x439ac4
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0x1c], ebx
mov ebp, dword [esp + 0xc8]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x58], ebp
jae 0x439a62
mov ebx, edx
dec ebx
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x44], ebp
mov ebx, dword [esp + 0x44]
sar ebx, 0x1f
mov ebp, dword [esp + 0x50]
sub ebp, ebx
mov dword [esp + 0x50], ebp
mov ebx, dword [esp + 0x50]
sar ebx, 1
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x28]
cmp ebx, eax
jae 0x439abd
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
mov word [esp + 0x1a], bx
mov ebx, edx
cmp edx, eax
jae 0x439ab6
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [esp + 0x1a]
mov word [ebp], bx
mov edx, dword [esp + 0x28]
cmp edx, 0
jg 0x439998
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x100]
cmp ebx, ebp
jae 0x439aaf
mov ebp, dword [esp + 0xfc]
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
mov word [esp + 0x1a], bx
mov ebx, edx
cmp edx, eax
jae 0x439aa8
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [esp + 0x1a]
mov word [ebp], bx
mov ebx, dword [esp + 0x38]
inc ebx
mov dword [esp + 0x38], ebx
jmp 0x439939
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
mov ebx, ebp
dec ebx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x3c]
cmp ebx, 0
jl 0x439bba
mov ebx, dword [esp + 0x3c]
cmp ebx, eax
jae 0x43addb
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
mov word [esp + 0x18], bx
movzx ebx, word [esp + 0x18]
cmp ebx, esi
jae 0x43add4
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0xc4], ebx
cmp eax, 0
jbe 0x43adcd
movzx ebp, word [ecx]
mov word [esp + 0x1a], bp
mov ebx, dword [esp + 0x3c]
cmp ebx, eax
jae 0x43adc6
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [esp + 0x1a]
mov word [ebp], bx
mov dword [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
shl edx, 1
inc edx
mov ebp, dword [esp + 0x3c]
cmp edx, ebp
jl 0x43acb3
movzx ebx, word [esp + 0x18]
mov word [esp + 0x1a], bx
mov ebx, dword [esp + 0x2c]
cmp ebx, eax
jae 0x43acac
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [esp + 0x1a]
mov word [ebp], bx
mov ebx, dword [esp + 0x3c]
dec ebx
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x3c]
cmp ebx, 0
jge 0x439aff
mov dword [esp], edi
mov dword [esp + 4], esi
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov dword [esp + 0x114], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x118], eax
mov dword [esp + 0x10], eax
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439360
mov dword [esp + 0x40], 0
mov dword [esp + 0xb8], 0
xor esi, esi
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
cmp ebp, esi
jle 0x439f6a
mov dword [esp + 0x30], esi
mov ebx, esi
mov ebp, dword [esp + 0x100]
cmp esi, ebp
jae 0x43aca5
mov ebp, dword [esp + 0xfc]
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
mov ebp, dword [esp + 0xe8]
cmp ebx, ebp
jae 0x43ac9e
mov ecx, dword [esp + 0xe4]
imul ebx, ebx, 0x1c
add ecx, ebx
mov edx, dword [ecx + 4]
mov dword [esp + 0xbc], ecx
movzx ebp, word [ecx + 0xc]
cmp bp, 1
jne 0x43aa4b
mov dword [esp + 0xc0], edx
mov dword [esp], edx
cmp dword [esp], 0
je 0x43aa40
add dword [esp], 0x28
call fcn.004064b0
mov ecx, dword [esp + 0xc0]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 4]
xor ebp, ebp
cmp eax, ebp
je 0x439dbb
xor edx, edx
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], edx
mov dword [esp + 0x138], edx
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], edx
mov dword [esp + 0x144], edx
lea edx, [esp + 0x12c]
mov esi, 0x44e740
mov dword [edx], esi
mov ebp, dword [esp + 0xe4]
mov dword [edx + 4], ebp
mov ebp, dword [esp + 0xe8]
mov dword [edx + 8], ebp
mov ebp, dword [esp + 0xec]
mov dword [edx + 0xc], ebp
mov ebp, dword [esp + 0x114]
mov dword [edx + 0x10], ebp
mov ebp, dword [esp + 0x118]
mov dword [edx + 0x14], ebp
mov ebp, dword [esp + 0x11c]
mov dword [edx + 0x18], ebp
mov dword [esp], ecx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call fcn.00406260
mov ecx, dword [esp + 0xbc]
mov ebp, dword [ecx + 0x10]
xor ebx, ebx
cmp ebp, ebx
je 0x439d5c
mov eax, 1
mov ebp, dword [ecx + 0x10]
mov byte [ebp], al
mov ebp, dword [ecx + 0x14]
mov eax, dword [ecx + 0x18]
cmp eax, 0
jl 0x439d9e
jg 0x439d6e
cmp ebp, 0
jbe 0x439d9e
mov dword [esp + 0xbc], ecx
mov eax, dword [ecx + 0x14]
mov edx, dword [ecx + 0x18]
sub eax, dword [esp + 0x5c]
sbb edx, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 2
call fcn.00423d60
mov ecx, dword [esp + 0xbc]
mov ebp, dword [ecx + 8]
mov dword [esp + 0x150], ebp
movzx ebp, word [ecx + 0xe]
mov word [esp + 0x154], bp
add esp, 0x148
ret
mov ebp, dword [ecx]
cmp ebp, 0
jbe 0x439ebb
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx + 0x10]
xor ebx, ebx
cmp ebp, ebx
je 0x439de8
mov eax, 1
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx + 0x10]
mov byte [ebp], al
mov esi, dword [ecx + 0x1c]
movzx ebp, word [ecx + 0xc]
imul esi, ebp
mov edx, dword [ecx + 8]
add edx, esi
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx]
xor ebx, ebx
cmp ebp, ebx
je 0x439e37
mov ebp, dword [ecx + 0x14]
mov dword [esp], ebp
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx]
mov dword [esp + 4], ebp
mov dword [esp + 0xa4], edx
mov dword [esp + 8], edx
call fcn.0040fdf0
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xc0]
mov dword [esp], edx
movzx ebp, word [ecx + 0xc]
mov dword [esp + 4], ebp
call fcn.00453ee0
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x1c]
inc ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [eax + 0x1c]
mov ebp, dword [eax + 4]
cmp ecx, ebp
jne 0x439e64
xor ecx, ecx
mov dword [eax + 0x1c], ecx
mov ecx, dword [eax]
dec ecx
mov dword [eax], ecx
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439420
mov ecx, dword [esp + 0xbc]
jmp 0x439d5c
mov ebp, dword [ecx + 0x10]
cmp ebp, 0
je 0x439f56
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439420
mov ecx, dword [esp + 0xbc]
mov ebp, dword [ecx + 0x10]
xor ebx, ebx
cmp ebp, ebx
je 0x439f25
xor eax, eax
mov ebp, dword [ecx + 0x10]
mov byte [ebp], al
mov ebp, dword [ecx]
xor ebx, ebx
cmp ebp, ebx
je 0x439d5c
mov ebp, dword [ecx]
mov dword [esp], ebp
mov ebx, dword [esp + 0xc0]
movzx ebp, word [ebx + 0xc]
mov dword [esp + 4], ebp
call fcn.00453ee0
mov ecx, dword [esp + 0xbc]
jmp 0x439d5c
inc esi
mov ebx, dword [esp + 0x14c]
movzx ebp, word [ebx + 2]
cmp ebp, esi
jg 0x439c1a
mov ebx, dword [esp + 0xb8]
xor ebp, ebp
cmp ebx, ebp
je 0x439fc9
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439420
mov ecx, dword [esp + 0xb8]
jmp 0x439d5c
mov ebx, dword fs:[0x14]
mov ebx, dword [ebx]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x40], 0
mov ebx, dword [esp + 0xb4]
mov ebp, dword [ebx + 0xc8]
xor ebx, ebx
cmp ebp, ebx
je 0x43a00d
mov ebx, 0x5f9f00
mov dword [esp], ebx
mov dword [esp + 4], 0x11
call fcn.0042ae60
mov eax, dword [esp + 0xb4]
cmp eax, 0
je 0x43aa39
add eax, 0xc8
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x118]
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x128], ebx
xor ecx, ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x120], edx
mov eax, edx
mov ebp, dword [esp + 0x44]
cmp ecx, ebp
jge 0x43a222
mov dword [esp + 0xcc], eax
movzx ebp, word [eax]
mov dword [esp + 0x50], ecx
movzx ebx, bp
mov ebp, dword [esp + 0xe8]
cmp ebx, ebp
jae 0x43aa32
mov ebp, dword [esp + 0xe4]
imul ebx, ebx, 0x1c
add ebp, ebx
mov dword [esp + 0xbc], ebp
mov ebp, dword [ebp + 4]
mov dword [esp + 0xc0], ebp
call fcn.0042c970
mov ecx, dword [esp]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x9c], ecx
cmp ecx, 0
je 0x43aa2b
cmp byte [0x6dae38], 0
jne 0x43aa13
mov dword [ecx], eax
lea ebx, [esp + 0x40]
xor ebx, 0
cmp ecx, 0
je 0x43aa0c
cmp byte [0x6dae38], 0
jne 0x43a9f1
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx]
cmp ecx, 0
je 0x43a9ea
cmp byte [0x6dae38], 0
jne 0x43a9cf
mov dword [ecx + 0x10], ebp
xor ebp, ebp
xor edx, edx
mov dword [ecx + 0x14], ebp
mov dword [ecx + 0x18], edx
cmp dword [esp + 0x60], 0
jne 0x43a12c
cmp dword [esp + 0x5c], 0
je 0x43a13c
mov ebp, 0xffffffff
mov edx, 0xffffffff
mov dword [ecx + 0x14], ebp
mov dword [ecx + 0x18], edx
mov eax, dword [esp + 0xc0]
cmp ecx, 0
je 0x43a9c8
cmp byte [0x6dae38], 0
jne 0x43a9ad
mov dword [ecx + 0x24], eax
mov ebx, dword [esp + 0xb0]
cmp ebx, 0
je 0x43a9a6
cmp byte [0x6dae38], 0
jne 0x43a98e
mov dword [ebx], ecx
mov eax, ecx
cmp ecx, 0
je 0x43a987
add eax, 0x20
mov dword [esp + 0xb0], eax
mov ebx, dword [esp + 0xbc]
movzx ebp, word [ebx + 0xc]
cmp bp, 1
jne 0x43a84c
mov edx, dword [esp + 0xc0]
cmp edx, 0
je 0x43a845
add edx, 0x20
mov eax, ecx
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [esp + 0xa8], edx
mov ecx, dword [edx + 4]
xor ebp, ebp
cmp ecx, ebp
jne 0x43a7a0
xor ecx, ecx
mov dword [eax + 0xc], ecx
mov dword [esp + 0x84], eax
cmp byte [0x6dae38], 0
jne 0x43a781
mov dword [edx], eax
cmp edx, 0
je 0x43a77a
cmp byte [0x6dae38], 0
jne 0x43a766
mov dword [edx + 4], eax
mov eax, dword [esp + 0xcc]
add eax, 2
mov ecx, dword [esp + 0x50]
inc ecx
mov ebp, dword [esp + 0x44]
cmp ecx, ebp
jl 0x43a067
xor eax, eax
mov ebx, dword [esp + 0xb4]
mov dword [ebx + 0x58], eax
mov ebx, 0x61af88
mov dword [esp], ebx
mov dword [esp + 4], 0
mov ebx, 0x5f7178
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 6
mov byte [esp + 0x10], 0x18
mov dword [esp + 0x14], 2
call fcn.0042c730
xor eax, eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], eax
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
lea eax, [esp + 0x12c]
mov ecx, 0x44e6e0
mov dword [eax], ecx
mov ebp, dword [esp + 0xe4]
mov dword [eax + 4], ebp
mov ebp, dword [esp + 0xe8]
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0xec]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x114]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0x118]
mov dword [eax + 0x14], ebp
mov ebp, dword [esp + 0x11c]
mov dword [eax + 0x18], ebp
mov dword [esp], eax
call fcn.004517c0
mov ecx, dword [esp + 0xb4]
mov ebp, dword [ecx + 0x58]
mov dword [esp + 0xa0], ebp
xor eax, eax
mov dword [ecx + 0x58], eax
xor esi, esi
mov dword [esp + 0xbc], esi
mov ebp, dword [ecx + 0xc8]
mov dword [esp + 0x98], ebp
mov eax, dword [ecx + 0xc8]
xor ebp, ebp
cmp eax, ebp
je 0x43a336
xor edx, edx
mov dword [eax + 4], edx
xor edx, edx
mov dword [eax + 0x10], edx
xor edx, edx
mov dword [eax + 0x24], edx
mov eax, dword [eax + 0x20]
xor ebp, ebp
cmp eax, ebp
jne 0x43a31e
xor eax, eax
mov dword [ecx + 0xc8], eax
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x118]
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x128], ebx
xor ecx, ecx
mov dword [esp + 0x124], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x120], edx
mov eax, edx
mov ebp, dword [esp + 0x44]
cmp ecx, ebp
jge 0x43a44d
mov dword [esp + 0xcc], eax
movzx ebp, word [eax]
mov dword [esp + 0x50], ecx
movzx ebx, bp
mov ebp, dword [esp + 0xe8]
cmp ebx, ebp
jae 0x43a75f
mov ecx, dword [esp + 0xe4]
imul ebx, ebx, 0x1c
add ecx, ebx
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x14]
mov eax, dword [ebx + 0x18]
cmp eax, 0
jl 0x43a3d4
jg 0x43a3c1
cmp ebp, 0
jbe 0x43a3d4
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
mov dword [ecx + 0x14], ebp
mov dword [ecx + 0x18], edx
mov ebx, dword [esp + 0xa0]
mov ebp, dword [esp + 0x98]
cmp ebx, ebp
jne 0x43a4ca
mov dword [esp + 0xbc], ecx
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x20]
mov dword [esp + 0x94], ebp
xor eax, eax
mov ebx, dword [esp + 0x98]
mov dword [ebx + 0x20], eax
mov ebx, dword [esp + 0x98]
mov dword [esp], ebx
call fcn.0042cd00
mov esi, dword [esp + 0xbc]
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x98], ebx
mov eax, dword [esp + 0xcc]
add eax, 2
mov ecx, dword [esp + 0x50]
inc ecx
mov ebp, dword [esp + 0x44]
cmp ecx, ebp
jl 0x43a37c
xor ebp, ebp
cmp esi, ebp
je 0x439bfa
mov ebp, dword [esi + 4]
movzx ebp, word [esi + 0xc]
cmp bp, 1
jne 0x43a478
mov ebp, dword [esi + 0x10]
xor ebx, ebx
cmp ebp, ebx
je 0x43a478
mov eax, 1
mov ebp, dword [esi + 0x10]
mov byte [ebp], al
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439420
mov ecx, dword [esp + 0xbc]
jmp 0x439d5c
mov eax, dword [ecx + 4]
movzx ebp, word [ecx + 0xc]
cmp bp, 2
jne 0x43a61d
cmp eax, 0
je 0x43a616
add eax, 0x28
mov esi, dword [esp + 0x98]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x88], esi
mov ecx, dword [esi + 8]
xor ebp, ebp
cmp edx, ebp
je 0x43a5c0
xor ebp, ebp
cmp ecx, ebp
je 0x43a584
mov dword [esp + 0x70], ecx
mov dword [esp + 0x7c], edx
cmp edx, 0
je 0x43a580
cmp byte [0x6dae38], 0
jne 0x43a560
mov dword [edx + 8], ecx
cmp ecx, 0
je 0x43a55c
cmp byte [0x6dae38], 0
jne 0x43a544
mov dword [ecx + 0xc], edx
xor eax, eax
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x43a3f1
lea esi, [ecx + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0040fcf0
mov esi, dword [esp + 0x88]
jmp 0x43a535
mov dword [ecx], eax
jmp 0x43a529
lea esi, [edx + 8]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov esi, dword [esp + 0x88]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
jmp 0x43a524
mov dword [edx], eax
jmp 0x43a518
xor ecx, ecx
mov dword [edx + 8], ecx
cmp eax, 0
je 0x43a5bc
cmp byte [0x6dae38], 0
jne 0x43a5a4
mov dword [eax + 4], edx
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x43a3f1
lea esi, [eax + 4]
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0040fcf0
mov esi, dword [esp + 0x88]
jmp 0x43a59a
mov dword [eax], eax
jmp 0x43a58e
xor ebp, ebp
cmp ecx, ebp
je 0x43a5fe
xor edx, edx
mov dword [ecx + 0xc], edx
cmp eax, 0
je 0x43a5fa
cmp byte [0x6dae38], 0
jne 0x43a5e5
mov dword [eax], ecx
xor eax, eax
mov dword [esi + 8], eax
jmp 0x43a3f1
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov esi, dword [esp + 0x88]
jmp 0x43a5db
mov dword [eax], eax
jmp 0x43a5d0
mov ebp, dword [eax]
cmp ebp, esi
jne 0x43a3f1
xor ecx, ecx
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
jmp 0x43a3f1
mov dword [eax], eax
jmp 0x43a4e4
cmp eax, 0
je 0x43a758
add eax, 0x20
mov esi, dword [esp + 0x98]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x8c], esi
mov ecx, dword [esi + 8]
xor ebp, ebp
cmp edx, ebp
je 0x43a702
xor ebp, ebp
cmp ecx, ebp
je 0x43a6c6
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], edx
cmp edx, 0
je 0x43a6c2
cmp byte [0x6dae38], 0
jne 0x43a6a2
mov dword [edx + 8], ecx
cmp ecx, 0
je 0x43a69e
cmp byte [0x6dae38], 0
jne 0x43a686
mov dword [ecx + 0xc], edx
xor eax, eax
mov dword [esi + 8], eax
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x43a3f1
lea esi, [ecx + 0xc]
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0040fcf0
mov esi, dword [esp + 0x8c]
jmp 0x43a677
mov dword [ecx], eax
jmp 0x43a66b
lea esi, [edx + 8]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov esi, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x6c]
jmp 0x43a666
mov dword [edx], eax
jmp 0x43a65a
xor ecx, ecx
mov dword [edx + 8], ecx
cmp eax, 0
je 0x43a6fe
cmp byte [0x6dae38], 0
jne 0x43a6e6
mov dword [eax + 4], edx
xor eax, eax
mov dword [esi + 0xc], eax
jmp 0x43a3f1
lea esi, [eax + 4]
mov dword [esp], esi
mov dword [esp + 4], edx
call fcn.0040fcf0
mov esi, dword [esp + 0x8c]
jmp 0x43a6dc
mov dword [eax], eax
jmp 0x43a6d0
xor ebp, ebp
cmp ecx, ebp
je 0x43a740
xor edx, edx
mov dword [ecx + 0xc], edx
cmp eax, 0
je 0x43a73c
cmp byte [0x6dae38], 0
jne 0x43a727
mov dword [eax], ecx
xor eax, eax
mov dword [esi + 8], eax
jmp 0x43a3f1
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov esi, dword [esp + 0x8c]
jmp 0x43a71d
mov dword [eax], eax
jmp 0x43a712
mov ebp, dword [eax]
cmp ebp, esi
jne 0x43a3f1
xor ecx, ecx
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], ecx
jmp 0x43a3f1
mov dword [eax], eax
jmp 0x43a626
call fcn.004291a0
ud2
lea esi, [edx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
jmp 0x43a207
mov dword [edx], eax
jmp 0x43a1f7
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0040fcf0
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x84]
jmp 0x43a1ee
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
cmp byte [0x6dae38], 0
jne 0x43a81c
mov dword [eax + 0xc], ecx
cmp ecx, 0
je 0x43a818
cmp byte [0x6dae38], 0
jne 0x43a7f9
mov dword [ecx + 8], eax
cmp edx, 0
je 0x43a7f5
cmp byte [0x6dae38], 0
jne 0x43a7e1
mov dword [edx + 4], eax
jmp 0x43a207
lea esi, [edx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
jmp 0x43a207
mov dword [edx], eax
jmp 0x43a7d0
lea esi, [ecx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x84]
jmp 0x43a7cb
mov dword [ecx], eax
jmp 0x43a7bf
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0x84]
jmp 0x43a7ba
mov dword [edx], eax
jmp 0x43a1b5
cmp bp, 2
jne 0x43a207
mov edx, dword [esp + 0xc0]
cmp edx, 0
je 0x43a980
add edx, 0x28
mov eax, ecx
xor ecx, ecx
mov dword [eax + 8], ecx
mov dword [esp + 0xac], edx
mov ecx, dword [edx + 4]
xor ebp, ebp
cmp ecx, ebp
jne 0x43a8e1
xor ecx, ecx
mov dword [eax + 0xc], ecx
mov dword [esp + 0x90], eax
cmp byte [0x6dae38], 0
jne 0x43a8c5
mov dword [edx], eax
cmp edx, 0
je 0x43a8c1
cmp byte [0x6dae38], 0
jne 0x43a8ad
mov dword [edx + 4], eax
jmp 0x43a207
lea esi, [edx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
jmp 0x43a207
mov dword [edx], eax
jmp 0x43a89c
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0040fcf0
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x90]
jmp 0x43a897
mov dword [esp + 0x74], ecx
mov dword [esp + 0x90], eax
cmp byte [0x6dae38], 0
jne 0x43a95a
mov dword [eax + 0xc], ecx
cmp ecx, 0
je 0x43a956
cmp byte [0x6dae38], 0
jne 0x43a937
mov dword [ecx + 8], eax
cmp edx, 0
je 0x43a933
cmp byte [0x6dae38], 0
jne 0x43a91f
mov dword [edx + 4], eax
jmp 0x43a207
lea esi, [edx + 4]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
jmp 0x43a207
mov dword [edx], eax
jmp 0x43a90e
lea esi, [ecx + 8]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x90]
jmp 0x43a909
mov dword [ecx], eax
jmp 0x43a8fd
lea esi, [eax + 0xc]
mov dword [esp], esi
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x90]
jmp 0x43a8f8
mov dword [edx], eax
jmp 0x43a866
mov dword [ecx], eax
jmp 0x43a186
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040fcf0
mov ecx, dword [esp + 0x9c]
jmp 0x43a17b
mov dword [ebx], eax
jmp 0x43a16c
lea esi, [ecx + 0x24]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.0040fcf0
mov ecx, dword [esp + 0x9c]
jmp 0x43a15c
mov dword [ecx], eax
jmp 0x43a14c
lea esi, [ecx + 0x10]
mov dword [esp], esi
mov dword [esp + 4], ebp
call fcn.0040fcf0
mov ecx, dword [esp + 0x9c]
jmp 0x43a114
mov dword [ecx], eax
jmp 0x43a104
lea esi, [ecx + 4]
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.0040fcf0
mov ecx, dword [esp + 0x9c]
jmp 0x43a0f2
mov dword [ecx], eax
jmp 0x43a0e2
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040fcf0
mov ecx, dword [esp + 0x9c]
jmp 0x43a0d2
mov dword [ecx], eax
jmp 0x43a0c3
call fcn.004291a0
ud2
mov dword [eax], eax
jmp 0x43a01d
mov dword [0], eax
jmp 0x439c85
cmp bp, 2
jne 0x43ac88
mov ebp, dword [edx + 0x10]
cmp ebp, 0
je 0x43aaf5
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439420
mov ebx, 0x5fbc21
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], 0x16
mov dword [esp], 0x5ce840
lea ebx, [esp + 0xd0]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call fcn.0040c410
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call fcn.0042a780
ud2
mov dword [esp + 0xc0], edx
mov dword [esp], edx
cmp dword [esp], 0
je 0x43ac7d
add dword [esp], 0x20
call fcn.004064b0
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 4]
xor ebp, ebp
cmp eax, ebp
je 0x43abd1
xor ecx, ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x13c], ecx
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], ecx
lea ecx, [esp + 0x12c]
mov esi, 0x44e7a0
mov dword [ecx], esi
mov ebp, dword [esp + 0xe4]
mov dword [ecx + 4], ebp
mov ebp, dword [esp + 0xe8]
mov dword [ecx + 8], ebp
mov ebp, dword [esp + 0xec]
mov dword [ecx + 0xc], ebp
mov ebp, dword [esp + 0x114]
mov dword [ecx + 0x10], ebp
mov ebp, dword [esp + 0x118]
mov dword [ecx + 0x14], ebp
mov ebp, dword [esp + 0x11c]
mov dword [ecx + 0x18], ebp
mov dword [esp], edx
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
call fcn.004057a0
mov ecx, dword [esp + 0xbc]
jmp 0x439d5c
mov ecx, dword [edx]
mov ebp, dword [edx + 4]
cmp ecx, ebp
jae 0x439f56
mov esi, dword [edx + 0x18]
movzx ebp, word [edx + 0xc]
imul esi, ebp
mov eax, dword [edx + 8]
add eax, esi
mov ebp, dword [edx + 0x14]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov ebx, dword [esp + 0xbc]
mov ebp, dword [ebx]
mov dword [esp + 8], ebp
call fcn.0040fdf0
mov eax, dword [esp + 0xc0]
mov ecx, dword [eax + 0x18]
inc ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [eax + 0x18]
mov ebp, dword [eax + 4]
cmp ecx, ebp
jne 0x43ac26
xor ecx, ecx
mov dword [eax + 0x18], ecx
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov ebx, dword [esp + 0xe8]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xec]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x114]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x118]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x11c]
mov dword [esp + 0x14], ebx
call fcn.00439420
mov ecx, dword [esp + 0xbc]
jmp 0x439d5c
mov dword [0], eax
jmp 0x43ab09
cmp bp, 3
jne 0x439f56
mov dword [esp + 0xb8], ecx
jmp 0x439f56
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
mov ebp, edx
inc ebp
mov ebx, dword [esp + 0x3c]
cmp ebp, ebx
jge 0x43ad1e
mov ebx, edx
cmp edx, eax
jae 0x43adbf
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
cmp ebx, esi
jae 0x43adb8
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov ebx, dword [ebp + 4]
mov dword [esp + 0x24], ebx
mov ebx, edx
inc ebx
cmp ebx, eax
jae 0x43adb1
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
cmp ebx, esi
jae 0x43adaa
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov ebp, dword [ebp + 4]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x58], ebx
cmp dword [esp + 0x58], ebp
jae 0x43ad1e
inc edx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x20], ebx
mov ebx, edx
cmp edx, eax
jae 0x43ada3
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
cmp ebx, esi
jae 0x43ad9c
mov ebp, edi
imul ebx, ebx, 0x1c
add ebp, ebx
mov ebp, dword [ebp + 4]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x54], ebx
cmp dword [esp + 0x54], ebp
jae 0x439b7f
mov ebx, edx
cmp edx, eax
jae 0x43ad95
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [ebp]
mov word [esp + 0x1a], bx
mov ebx, dword [esp + 0x2c]
cmp ebx, eax
jae 0x43ad8e
mov ebp, ecx
shl ebx, 1
add ebp, ebx
movzx ebx, word [esp + 0x1a]
mov word [ebp], bx
mov dword [esp + 0x2c], edx
jmp 0x439b6c
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
call fcn.004291a0
ud2
mov dword [ebx], eax
jmp 0x439922
mov dword [ebx], eax
jmp 0x4397d0
call fcn.004291a0
ud2
mov dword [ebx], eax
jmp 0x4396c8
mov dword [eax], eax
jmp 0x43968a
call fcn.004518d0
jmp fcn.00439640