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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edx, dword [ebx]
sub esp, 0x10
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 4]
mov dword [esp + 0x2c], 3
mov eax, dword [eax + edx*4]
mov edx, esp
mov ecx, dword [eax]
movsx edi, word [eax + 0xa]
mov dword [esp + 0x78], edi
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0xc], eax
add ecx, 0x134
inc dword [eax]
call fcn.00413758
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4430c3
mov edx, dword [ebx]
mov eax, dword [ecx + 0x148]
inc edx
mov esi, dword [esi + 4]
mov dword [esp + 0x84], eax
xor eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 1
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x64], eax
mov eax, dword [esi + edx*4]
mov dword [esp + 0x34], 0x49098c
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
cmp word [eax + 8], 0x47
mov dword [esp + 0x58], 0x492c18
mov dword [ebx], edx
jne 0x4430d6
inc edx
xor edi, edi
mov dword [ebx], edx
mov dword [esp + 0x28], edx
mov ecx, dword [ebx]
mov eax, dword [esi + ecx*4]
movsx eax, word [eax + 8]
cmp eax, 0x47
jge 0x40b132
lea eax, [ecx + 1]
mov dword [ebx], eax
jmp 0x40b11d
sub eax, 0x47
je 0x40bb4c
dec eax
jne 0x4430e3
test edi, edi
jne 0x443105
mov eax, ecx
mov dword [esp + 0x10], eax
inc eax
mov dword [ebx], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x10]
cmp eax, dword [0x4c82a0]
jg 0x40bb52
test eax, eax
jle 0x40bb52
shl eax, 4
add eax, dword [0x4c82dc]
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], ecx
mov eax, dword [ecx]
cmp word [eax + 8], 0
jne 0x40b194
cmp dword [eax], 0x2b
je 0x443110
mov edi, 3
mov eax, dword [esp + 0x48]
xor ebx, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x20], ebx
cmp dword [eax + 0x14], ebx
jg 0x40b7ac
mov ecx, dword [esp + 0x10]
mov bl, byte [ebp + 8]
test bl, bl
jne 0x4431f3
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
cmp eax, dword [edi + 0x18]
jl 0x443576
cmp eax, dword [edi + 0x14]
jg 0x443576
cmp edx, ecx
jne 0x443576
mov eax, dword [edi + 0x10]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], eax
test eax, eax
js 0x4432c8
lea eax, [esp + 0x68]
mov ecx, 0x4c8280
push eax
call fcn.00403af5
mov esi, dword [esp + 0x68]
test esi, esi
jne 0x4432d5
cmp dword [edi + 0x14], 1
jge 0x40b50c
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x88], 0
mov dword [esp + 0x90], 0
mov dword [ebx + 0x148], eax
mov eax, dword [ebx]
mov dword [esp + 0x94], 1
mov byte [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov edi, dword [eax + 4]
add edi, ebx
mov byte [esp + 0xa0], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 1
cmp byte [edi + 0xd], 0
mov byte [esp + 0xb8], 0
jne 0x4434ab
push 0x40
call fcn.00420ffe
mov esi, eax
add esp, 4
test esi, esi
je 0x40bb9e
lea eax, [esp + 0x88]
mov dword [esi + 8], 0
push eax
mov ecx, esi
call fcn.00404e78
lea eax, [esp + 0xa8]
mov byte [esi + 0x10], 0
lea ecx, [esi + 0x20]
mov dword [esi + 0x14], 0
mov byte [esi + 0x18], 0
push eax
mov dword [ecx + 8], 0
call fcn.00404e78
mov byte [esi + 0x30], 0
mov eax, dword [edi + 8]
mov dword [esi + 0x38], eax
mov dword [edi + 8], esi
mov eax, dword [esp + 0x48]
lea esi, [ebx + 0x15c]
inc dword [edi + 4]
mov edi, dword [ebx + 0xf4]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov ebx, dword [esi]
inc eax
push eax
call fcn.0040bc88
cmp ebx, dword [esi]
jb 0x4434c4
mov ebx, dword [esp + 0xc]
mov eax, dword [ebx]
mov dword [ebx + 0xf4], edi
mov ecx, dword [eax + 4]
mov eax, dword [ecx + ebx + 8]
add ecx, ebx
cmp byte [ecx + 0xd], 0
jne 0x40bba5
cmp byte [eax + 0x10], 0
mov eax, dword [ebp + 0x18]
je 0x40ba3b
cmp byte [ecx + 0xd], 0
mov byte [eax], 1
jne 0x4434d4
mov edi, dword [ecx + 8]
mov esi, dword [ebp + 0x14]
cmp esi, edi
je 0x40b38d
cmp dword [esi + 0xc], 4
je 0x4434df
mov ecx, esi
call fcn.00404dd8
push edi
mov ecx, esi
call fcn.00404e78
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov eax, dword [esi + ebx + 8]
add esi, ebx
cmp byte [esi + 0xd], 0
jne 0x40bbad
cmp byte [eax + 0x18], 0
jne 0x4434f9
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 8]
jne 0x40bbb5
cmp byte [eax + 0x30], 0
jne 0x443510
mov eax, dword [ebx]
mov esi, dword [eax + 4]
add esi, ebx
cmp byte [esi + 0xd], 0
jne 0x44352d
cmp byte [esi + 0xc], 0
jne 0x40bbbd
mov edi, dword [esi + 8]
mov ebx, dword [edi + 0x38]
test edi, edi
je 0x40b400
lea ecx, [edi + 0x20]
call fcn.00404dd8
mov ecx, edi
call fcn.00404dd8
push edi
call fcn.00421074
add esp, 4
mov dword [esi + 8], ebx
mov ebx, dword [esp + 0xc]
mov byte [esi + 0xd], 0
dec dword [esi + 4]
mov eax, dword [ebx]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + ebx + 8]
add ecx, ebx
cmp byte [ecx + 0xd], 0
jne 0x40bbc6
mov edx, dword [esp + 0x9c]
mov dword [eax + 0x14], edx
cmp byte [ecx + 0xd], 0
mov eax, dword [ecx + 8]
jne 0x40bbce
mov byte [eax + 0x18], 0
mov eax, dword [ebx]
mov esi, dword [eax + 4]
add esi, ebx
cmp byte [esi + 0xd], 0
jne 0x443549
mov edi, dword [esi + 8]
add edi, 0x20
lea eax, [esp + 0xa8]
cmp edi, eax
je 0x40b480
cmp dword [edi + 0xc], 4
je 0x443554
mov ecx, edi
call fcn.00404dd8
lea eax, [esp + 0xa8]
mov ecx, edi
push eax
call fcn.00404e78
cmp byte [esi + 0xd], 0
mov eax, dword [esi + 8]
jne 0x40bbd6
mov ecx, 0x4c8280
mov byte [eax + 0x30], 0
call fcn.00403a58
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0xa8]
mov dword [ebx + 0x148], eax
xor ebx, ebx
mov dword [esp + 0x20], ebx
call fcn.00404dd8
lea ecx, [esp + 0x88]
call fcn.00404dd8
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0x70]
call fcn.00404dd8
xor esi, esi
cmp dword [esp + 0x60], esi
ja 0x40b9b1
push dword [esp + 0x5c]
call fcn.00421074
add esp, 4
xor esi, esi
test edi, edi
jne 0x40b9dd
push dword [esp + 0x38]
call fcn.00421074
add esp, 4
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x5c]
sub eax, ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x54], eax
mov edi, edi
mov eax, dword [esp + 0x24]
xor ebx, ebx
mov esi, dword [esp + 0x1c]
lea edx, [esi*4]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edx]
cmp word [eax + 8], bx
je 0x44331f
mov edi, dword [esp + 0x1c]
xor esi, esi
mov dword [esp + 0x10], 1
lea edx, [edi*4 + 4]
mov edi, dword [esp + 0x10]
lea ebx, [ebx]
mov eax, dword [ecx + edx]
movzx eax, word [eax + 8]
cmp ax, 0x47
je 0x40bb6d
cmp ax, 0x48
je 0x40ba18
cmp ax, 0x40
jne 0x40ba1f
test esi, esi
jne 0x40ba1f
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x30]
cmp edi, dword [esp + 0x2c]
jg 0x443435
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + edx]
cmp byte [eax], 0
jne 0x44334e
mov eax, dword [esp + 0x1c]
or ebx, 0x200
cmp dword [0x4c8280], 0
mov edx, dword [edx]
mov dword [esp + 0x20], edx
mov eax, dword [ecx + eax*4]
mov edi, dword [eax]
je 0x443385
cmp byte [0x4c8289], 0
jne 0x44339b
mov esi, dword [0x4c8284]
push esi
push edi
mov dword [esp + 0x58], esi
call fcn.00403c48
test al, al
jne 0x4433a8
and ebx, 0xff00
push 0x20
mov dword [esp + 0x50], ebx
call fcn.00420ffe
mov esi, eax
add esp, 4
test esi, esi
je 0x40bb7a
xor ecx, ecx
mov dword [esi + 4], 0
mov eax, 8
mov dword [esi + 8], 8
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420ffe
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax], cx
push 4
call fcn.00420ffe
add esp, 4
test eax, eax
je 0x40bb73
mov dword [eax], 1
mov dword [esi + 0xc], eax
cmp esi, edi
je 0x40b6ae
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
cmp eax, 1
jg 0x4433c7
mov ebx, dword [edi + 4]
mov dword [esi + 4], ebx
lea eax, [ebx + 1]
cmp dword [esi + 8], eax
jb 0x4433e7
mov eax, dword [esi + 4]
lea eax, [eax*2 + 2]
push eax
push dword [edi]
push dword [esi]
call fcn.00421088
mov ebx, dword [esp + 0x58]
add esp, 0xc
push 0x10
mov dword [esi + 0x10], ebx
call fcn.00420ffe
mov edi, eax
add esp, 4
test edi, edi
je 0x40bb81
push dword [esp + 0x20]
mov ecx, edi
mov dword [edi + 8], 0
call fcn.00404e78
mov ebx, dword [esp + 0x50]
mov dword [esi + 0x14], edi
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
test eax, eax
je 0x40ba28
lea eax, [esp + 0x14]
push eax
push esi
call fcn.00403c48
mov edx, dword [esp + 0x14]
mov edi, dword [esi + 4]
mov ecx, dword [edx + 4]
test edi, edi
je 0x40bb88
test ecx, ecx
je 0x443428
cmp edi, ecx
jb 0x40ba5a
mov ecx, dword [edx]
mov edx, dword [esi]
test edi, edi
je 0x40ba79
jmp 0x40b738
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x40b74e
add edx, 2
add ecx, 2
dec edi
jne 0x40b738
jmp 0x40ba79
jb 0x40bac9
mov eax, 1
test eax, eax
js 0x40bad1
jle 0x40bb95
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x1c]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], edx
mov dword [edx + 0x1c], 0
mov dword [ebx], esi
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x48]
inc eax
add dword [esp + 0x44], 4
add eax, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
inc eax
mov dword [esp + 0x30], eax
cmp eax, dword [ecx + 0x14]
jle 0x40b528
jmp 0x40b225
cmp edx, dword [esp + 0x10]
jae 0x40b1b4
shl edi, 2
inc ebx
mov dword [esp + 0x2c], ebx
xor bl, bl
mov dword [esp + 0x54], 0
mov eax, dword [ecx + edi]
cmp word [eax + 8], 0
je 0x44311e
mov eax, dword [esi + edx*4]
cmp word [eax + 8], 0x33
je 0x40b7e2
xor bl, bl
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x60]
cmp edi, eax
je 0x40b921
mov esi, dword [esp + 0x5c]
push 1
call fcn.00420ffe
add esp, 4
test eax, eax
je 0x40bb59
mov byte [eax], bl
mov dword [esi + edi*4], eax
lea ecx, [esp + 0x70]
inc edi
mov dword [esp + 0x60], edi
call fcn.00404dd8
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x7c], 1
mov dword [esp + 0x70], 0
cmp edi, eax
je 0x40b969
push 0x10
call fcn.00420ffe
mov esi, eax
add esp, 4
test esi, esi
je 0x40bb60
lea eax, [esp + 0x70]
mov dword [esi + 8], 0
push eax
mov ecx, esi
call fcn.00404e78
mov eax, dword [esp + 0x38]
push dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov dword [eax + edi*4], esi
inc edi
test bl, bl
mov dword [esp + 0x40], edi
mov ebx, dword [ebp + 0xc]
jne 0x44318b
push dword [eax + edi*4 - 4]
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.004053c8
test eax, eax
js 0x443593
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
inc edi
mov dword [esp + 0x14], edi
mov ecx, dword [eax + 4]
mov eax, dword [ecx + edi*4]
cmp word [eax + 8], 0x41
je 0x40ba91
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
je 0x40b1b8
mov esi, dword [ebx + 4]
mov eax, dword [esi + edx*4]
cmp word [eax + 8], 0x40
jne 0x4431db
lea eax, [edx + 1]
cmp eax, ecx
je 0x4431db
mov edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x50], ecx
mov eax, dword [ecx + edi*4]
cmp word [eax + 8], 0x40
jne 0x40b902
inc edi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x48]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ebx + 0x14]
jge 0x40b1b4
mov ebx, dword [esp + 0x2c]
jmp 0x40b7ac
add eax, eax
mov dword [esp + 0x4c], eax
cmp eax, 8
jae 0x40b935
mov eax, 8
mov dword [esp + 0x4c], eax
xor ecx, ecx
mov dword [esp + 0x64], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420ffe
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x40baea
mov dword [esp + 0x5c], esi
jmp 0x40b7f6
add eax, eax
mov dword [esp + 0x44], eax
cmp eax, 8
jae 0x40b97d
mov eax, 8
mov dword [esp + 0x44], eax
xor ecx, ecx
mov dword [esp + 0x40], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420ffe
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x40bb15
mov dword [esp + 0x38], esi
jmp 0x40b83b
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
push dword [ebx + esi*4]
call fcn.00421074
mov dword [ebx + esi*4], 0
add esp, 4
inc esi
cmp esi, edi
jb 0x40b9b9
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x3c]
jmp 0x40b4df
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
lea ecx, [ecx]
mov edi, dword [ecx + esi*4]
test edi, edi
je 0x40ba07
mov ecx, edi
call fcn.004051a8
push edi
call fcn.00421074
mov eax, dword [esp + 0x40]
add esp, 4
mov ecx, dword [esp + 0x38]
mov dword [ecx + esi*4], 0
inc esi
cmp esi, eax
jb 0x40b9e8
jmp 0x40b4f5
dec esi
js 0x40b595
inc edi
add edx, 4
jmp 0x40b568
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
jmp 0x40b77b
mov esi, dword [ebp + 0x14]
mov ecx, esi
mov byte [eax], 0
call fcn.00404dd8
mov dword [esi + 0xc], 1
mov dword [esi], 0
jmp 0x40b38d
mov edx, dword [edx]
mov edi, dword [esi]
test ecx, ecx
je 0x40ba79
lea ebx, [ebx]
mov ax, word [edi]
cmp ax, word [edx]
jne 0x40ba80
add edi, 2
add edx, 2
dec ecx
jne 0x40ba68
xor eax, eax
jmp 0x40b759
movzx eax, word [edi]
cmp ax, word [edx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x40b759
inc edi
xor edx, edx
lea esp, [esp]
mov eax, dword [ecx + edi*4]
movzx eax, word [eax + 8]
cmp ax, 0x47
je 0x40bb67
cmp ax, 0x48
je 0x40bb40
cmp ax, 0x40
je 0x40babc
inc edi
jmp 0x40ba98
test edx, edx
jne 0x40bab9
mov dword [esp + 0x14], edi
jmp 0x40b8b6
or eax, 0xffffffff
jmp 0x40b759
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x18]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov dword [edx + 0x18], 0
jmp 0x40b77b
test edi, edi
je 0x40b960
lea ecx, [edi*4]
push ecx
push eax
push esi
call fcn.00421088
add esp, 0xc
push dword [esp + 0x5c]
call fcn.00421074
add esp, 4
jmp 0x40b960
test edi, edi
je 0x40b9a8
lea ecx, [edi*4]
push ecx
push eax
push esi
call fcn.00421088
add esp, 0xc
push dword [esp + 0x38]
call fcn.00421074
add esp, 4
jmp 0x40b9a8
dec edx
js 0x40bac0
jmp 0x40bab9
inc edi
jmp 0x40b12b
xor eax, eax
jmp 0x40b177
xor eax, eax
jmp 0x40b80a
xor esi, esi
jmp 0x40b862
inc edx
jmp 0x40bab9
inc esi
jmp 0x40ba1f
xor eax, eax
jmp 0x40b66c
xor esi, esi
jmp 0x40b66f
xor edi, edi
jmp 0x40b6d7
test ecx, ecx
je 0x443428
jmp 0x40bad5
mov esi, dword [esp + 0x14]
jmp 0x40b77b
xor esi, esi
jmp 0x40b2fd
mov eax, dword [eax + 0x38]
jmp 0x40b350
mov eax, dword [eax + 0x38]
jmp 0x40b3a2
mov eax, dword [eax + 0x38]
jmp 0x40b3b9
mov byte [esi + 0xd], 1
jmp 0x40b40b
mov eax, dword [eax + 0x38]
jmp 0x40b423
mov eax, dword [eax + 0x38]
jmp 0x40b43a
mov eax, dword [eax + 0x38]
jmp 0x40b48d
push edi
push 0x85
call fcn.0046a4a5
or eax, 0xffffffff
jmp 0x40b503
push edi
push 0x6f
call fcn.0046a4a5
jmp 0x44358f
sub eax, 0x37
jne 0x40b12b
mov eax, dword [esi + ecx*4 - 4]
mov ecx, dword [esp + 0xc]
movsx eax, word [eax + 0xa]
push eax
push 0x6f
call fcn.0046a4a5
jmp 0x44358f
lea eax, [ecx + 1]
dec edi
mov dword [ebx], eax
jmp 0x40b11d
mov edi, 4
mov dword [esp + 0x1c], edi
jmp 0x40b199
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 4]
mov dword [esp + 0x30], eax
mov eax, dword [edi + eax + 4]
cmp word [eax + 8], 0x33
je 0x443149
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + edi + 4]
mov eax, dword [eax + edi]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x4431b4
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
mov eax, dword [edi + eax]
mov eax, dword [eax]
cmp eax, 0x24
jne 0x44315b
mov bl, 1
jmp 0x443168
cmp eax, 0x1e
jne 0x4431b4
mov dword [esp + 0x54], 0x100
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
lea edi, [eax*4]
mov eax, dword [ecx + edi]
cmp word [eax + 8], 0
mov eax, dword [esp + 0x30]
je 0x443129
jmp 0x40b7d6
push 0
push 1
push dword [esp + 0x60]
push dword [eax + edi*4 - 4]
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.0040a9f6
test eax, eax
js 0x443593
mov edi, dword [esp + 0x14]
inc edi
jmp 0x40bac0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4 + 4]
mov ecx, dword [esp + 0xc]
movsx eax, word [eax + 0xa]
push eax
push 0x91
call fcn.0046a4a5
jmp 0x44358f
mov eax, dword [esi + edx*4]
mov ecx, dword [esp + 0xc]
movsx eax, word [eax + 0xa]
push eax
push 0x6f
call fcn.0046a4a5
jmp 0x44358f
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x443265
cmp edx, ecx
je 0x40b1c3
lea eax, [esp + 0x1b]
mov byte [esp + 0x1b], 0
push eax
lea ecx, [esp + 0x5c]
call fcn.00457322
lea ecx, [esp + 0x70]
call fcn.00404dd8
lea eax, [esp + 0x70]
mov dword [esp + 0x7c], 1
push eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x74], esi
call fcn.00456c7a
push dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x10]
mov ecx, esi
push dword [eax + edi*4 - 4]
lea eax, [esp + 0x30]
push eax
push dword [ebp + 0xc]
call fcn.004053c8
test eax, eax
jns 0x443272
jmp 0x443593
cmp esi, 1
mov esi, dword [esp + 0xc]
jne 0x40b1c7
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.0047a9db
test eax, eax
jne 0x4432bb
lea ecx, [esp + 0x58]
call fcn.00420a90
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4432bb
mov byte [esp + 0x1b], 0
mov esi, ecx
lea eax, [esp + 0x1b]
push eax
lea ecx, [esp + 0x5c]
call fcn.00457322
dec esi
jne 0x44329d
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
jmp 0x40b1c3
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
jmp 0x40b1c7
mov dword [esp + 0x6c], 0
jmp 0x40b200
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4432e6
push eax
lea ecx, [esp + 0x6c]
call fcn.00403b49
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4432f7
push eax
lea ecx, [esp + 0x6c]
call fcn.00403b49
cmp byte [esi + 0x10], 0
jne 0x44330a
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x44330a
push ecx
call fcn.00456c36
mov ecx, esi
call fcn.00411cce
push esi
call fcn.00421074
add esp, 4
jmp 0x40b21b
mov eax, dword [edx + ecx]
mov eax, dword [eax]
cmp eax, 0x24
je 0x443333
cmp eax, 0x1e
jne 0x443334
mov ebx, 0x100
inc esi
mov eax, dword [ecx + esi*4]
lea edx, [esi*4]
cmp word [eax + 8], 0
je 0x44331f
mov dword [esp + 0x1c], esi
jmp 0x40b549
mov eax, dword [edx]
cmp dword [eax + 0xc], 6
jne 0x44335a
mov edx, dword [eax]
jmp 0x44335c
xor edx, edx
mov esi, dword [esp + 0x1c]
or ebx, 0x200
push 1
push ebx
push edx
mov eax, dword [ecx + esi*4]
push dword [eax]
call fcn.00465f0a
test al, al
je 0x44348c
mov esi, dword [esp + 0x10]
jmp 0x40b781
push ebx
push edx
push edi
mov ecx, 0x4c8270
call fcn.00403ebb
mov esi, dword [esp + 0x10]
jmp 0x40b781
mov eax, dword [0x4c8284]
mov esi, dword [eax + 8]
jmp 0x40b5f0
mov ecx, dword [esi]
test ecx, ecx
je 0x40b603
push dword [esp + 0x20]
mov ecx, dword [ecx + 0x14]
call fcn.00405254
mov esi, dword [esp + 0x10]
jmp 0x40b781
dec eax
mov dword [ecx], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
inc dword [eax]
jmp 0x40b6ae
push eax
call fcn.00411c7d
mov dword [esi + 8], eax
mov eax, dword [esi]
test eax, eax
je 0x4433ff
push eax
call fcn.00421074
add esp, 4
mov eax, dword [esi + 8]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420ffe
add esp, 4
mov dword [esi], eax
xor ecx, ecx
mov word [eax + ebx*2], cx
jmp 0x40b693
test edi, edi
jne 0x40b76b
jmp 0x40b71f
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
lea eax, [ecx + 2]
mov dword [esp + 0x20], eax
lea eax, [esi + ecx]
mov ecx, dword [esp + 0xc]
push eax
lea eax, [esp + 0x74]
push eax
lea eax, [esp + 0x28]
push eax
push edi
call fcn.004053c8
test eax, eax
js 0x44358f
push 1
or ebx, 0x200
lea eax, [esp + 0x74]
push ebx
push eax
mov eax, dword [edi + 4]
mov edi, dword [esp + 0x28]
mov eax, dword [eax + edi*4]
push dword [eax]
call fcn.004039d6
jmp 0x40b781
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
movsx eax, word [eax + 0xa]
push eax
push 0x79
call fcn.0046a4a5
jmp 0x44358f
mov ecx, dword [edi + 8]
lea eax, [esp + 0x88]
push eax
call fcn.0046a142
mov byte [edi + 0xd], 0
jmp 0x40b306
mov ecx, esi
call fcn.00403851
cmp ebx, dword [esi]
jb 0x4434c4
jmp 0x40b331
mov eax, dword [ecx + 8]
mov edi, dword [eax + 0x38]
jmp 0x40b36d
cmp dword [edi + 0xc], 4
jne 0x40b37e
push dword [edi + 8]
mov ecx, dword [esi + 8]
call fcn.00411cb4
jmp 0x40b38d
lea ecx, [esi + 4]
call fcn.0041fdff
mov eax, dword [eax + 0x14]
mov dword [esp + 0x9c], eax
jmp 0x40b3ac
lea ecx, [esi + 4]
call fcn.0041fdff
add eax, 0x20
lea ecx, [esp + 0xa8]
push eax
call fcn.00405254
jmp 0x40b3c3
mov ecx, dword [esi + 8]
mov edi, dword [ecx + 0x38]
test ecx, ecx
je 0x44353d
push ecx
call fcn.0041fe81
mov dword [esi + 8], edi
mov byte [esi + 0xd], 0
jmp 0x40b3d4
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x38]
jmp 0x40b452
cmp dword [esp + 0xb4], 4
jne 0x40b46a
push dword [esp + 0xb0]
mov ecx, dword [edi + 8]
call fcn.00411cb4
jmp 0x40b480
test bl, bl
jne 0x443589
push dword [esp + 0x68]
mov ecx, esi
push 0x70
call fcn.0046a4a5
jmp 0x44358f
mov eax, dword [ebp + 0x10]
add dword [eax], 0xfffffffe
mov edi, dword [esp + 0x3c]
or ebx, 0xffffffff
mov dword [esp + 0x20], ebx
jmp 0x40b4ca