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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x130
mov eax, dword fs:[0x2c]
mov dword [esp + 0x10], ecx
push esi
push edi
mov ecx, dword [eax]
mov eax, dword [0x4d2558]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x98], ecx
cmp eax, dword [ecx + 4]
jg 0x407c28
mov esi, dword [ebp + 0x10]
xor al, al
mov dword [esp + 0x3c], esi
mov dword [esp + 0x28], esi
xor esi, esi
push 8
mov word [esp + 0x5c], 1
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x34], esi
mov word [esp + 0x38], 1
call fcn.0042017b
mov ecx, dword [edi]
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], 1
mov dword [edx], 0x14
mov dword [edx + 4], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x10], 0x17
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x84], ecx
movsx eax, word [eax + 0xa]
mov dword [esp + 0x60], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi]
cmp ecx, eax
je case.0x40787a.4
mov edi, dword [esi + 4]
mov esi, dword [edi + ecx*4]
movzx eax, word [esi + 8]
mov edx, eax
cmp ax, 0x7f
je case.0x40787a.4
movsx eax, dx
cmp eax, 0x33
je 0x4066fe
cmp eax, 0x4f
je case.0x40787a.4
cmp eax, 5
je 0x406b50
cmp eax, 0x58
ja case.0x40787a.4
movzx eax, byte [eax + 0x407e24]
jmp dword [eax*4 + 0x407db8]
mov eax, dword [esi]
cmp eax, 4
jl 0x407869
cmp eax, 0x27
jge 0x407869
mov esi, 0x14
mov dword [esp + 0x10], esi
jmp 0x406690
mov cl, byte [esp + 0x17]
mov edx, dword [esp + 0x20]
test cl, cl
jne 0x406d4f
mov eax, edx
imul eax, dword [eax], 0x15
movzx eax, byte [eax + esi + 0x4b0470]
cmp eax, 3
jne 0x406a76
cmp dword [esp + 0x2c], 1
jne 0x4457eb
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 8], eax
mov dword [esp + 0x24], edi
test eax, eax
jne 0x406f87
test edx, edx
je 0x4066f4
jmp 0x4066e0
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042016d
add esp, 8
mov edx, esi
test esi, esi
jne 0x4066e0
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x16
test esi, esi
jne 0x406f28
mov edi, dword [esp + 0x3c]
cmp edi, 0x4d0280
je 0x40675b
mov eax, dword [edi + 0xc]
cmp eax, 4
je 0x4077ef
mov esi, dword [edi + 8]
test esi, esi
jne 0x407801
cmp eax, 5
jge 0x44526d
push 0x4d0280
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.00406020
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 8]
inc esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], esi
cmp esi, 1
jne 0x406f73
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x64], edx
cmp dword [0x4d2360], 0
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
mov esi, dword [eax]
mov dword [esp + 0x44], esi
je 0x407893
xor al, al
test al, al
jne 0x406bfb
cmp byte [0x4d2369], al
jne 0x44540a
mov esi, dword [0x4d2364]
cmp dword [esi], 0
je 0x406bf7
mov ecx, dword [esp + 0x98]
mov eax, dword [0x4d2518]
mov byte [esp + 0xf], 0
cmp eax, dword [ecx + 4]
jg 0x445417
mov dword [0x4d2538], 0
mov dword [0x4d2534], 0
mov dword [esp + 0x5c], 0x4d251c
mov dword [esp + 0x80], 0x4d251c
mov ecx, dword [esp + 0x44]
mov eax, dword [esi]
mov dword [esp + 0x7c], eax
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 4]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x44545a
test edx, edx
je 0x445462
mov edi, dword [eax]
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
cmp ecx, edx
jb 0x406ae7
mov edx, ecx
test edx, edx
je 0x406874
movzx ecx, word [eax]
movzx eax, cx
mov dword [esp + 0x48], eax
movzx eax, word [edi]
mov dword [esp + 0x38], ecx
mov ecx, eax
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x38]
cmp cx, ax
jne 0x406878
mov eax, dword [esp + 0x40]
add edi, 2
add eax, 2
mov dword [esp + 0x40], eax
sub edx, 1
jne 0x406841
xor eax, eax
jmp 0x406887
mov eax, dword [esp + 0x68]
cmp word [esp + 0x48], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x406939
jle 0x4069bb
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x4069c0
mov edi, dword [edx + 4]
cmp edi, ecx
ja 0x406fd9
mov eax, dword [esp + 0x44]
mov ecx, dword [edx]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x38], edi
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test edi, edi
je 0x406912
jmp 0x4068d0
movzx ecx, word [ecx]
movzx eax, cx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x4c]
cmp cx, ax
jne 0x406b1e
mov ecx, dword [esp + 0x68]
add dword [esp + 0x40], 2
add ecx, 2
sub dword [esp + 0x38], 1
mov dword [esp + 0x68], ecx
jne 0x4068d0
cmp edi, dword [esp + 0x24]
jb 0x406b30
mov edx, dword [esi]
mov ecx, dword [esp + 0x80]
mov dword [ecx + 0x1c], edx
mov edi, dword [esi]
mov dword [esp + 0x80], edi
mov eax, dword [edi + 0x1c]
jmp 0x406a6f
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x7c]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x4069c0
mov eax, dword [edx + 4]
cmp ecx, eax
ja 0x40701d
mov eax, dword [esp + 0x44]
mov edi, dword [edx]
mov dword [esp + 0x68], ecx
mov eax, dword [eax]
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x406a54
jmp 0x406970
movzx ecx, word [eax]
movzx eax, cx
mov dword [esp + 0x4c], eax
movzx eax, word [edi]
mov dword [esp + 0x48], ecx
mov ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x48]
cmp cx, ax
je 0x406a37
cmp word [esp + 0x4c], ax
jae 0x406a5d
mov ecx, dword [esp + 0x7c]
mov eax, dword [edx + 0x1c]
mov dword [ecx + 0x18], eax
mov eax, dword [esi]
mov dword [edx + 0x1c], eax
mov dword [esi], edx
cmp dword [edx + 0x18], 0
je 0x4069c0
jmp 0x406a5f
mov byte [esp + 0xf], 1
cmp byte [esp + 0xf], 0
mov eax, dword [esi]
mov ecx, dword [esp + 0x80]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x5c]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d2538]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d2534]
mov dword [ecx + 0x1c], eax
je 0x406bf7
mov eax, dword [esi]
test eax, eax
je 0x406bf7
mov eax, dword [eax + 0x14]
test eax, eax
je 0x406bf7
push dword [esp + 0x64]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push eax
inc dword [edi]
push edi
push esi
call fcn.00408eb0
test eax, eax
js 0x4456bd
mov eax, dword [ebp + 0x14]
jmp 0x406626
mov eax, dword [esp + 0x40]
add edi, 2
add eax, 2
sub dword [esp + 0x68], 1
mov dword [esp + 0x40], eax
jne 0x406970
mov ecx, dword [esp + 0x24]
cmp ecx, dword [edx + 4]
jb 0x40699f
mov edx, dword [esi]
mov ecx, dword [esp + 0x5c]
mov dword [ecx + 0x18], edx
mov edi, dword [esi]
mov dword [esp + 0x5c], edi
mov eax, dword [edi + 0x18]
mov dword [esi], eax
jmp 0x406803
cmp eax, 6
ja case.0x406a7f.3
jmp dword [eax*4 + 0x407e80]
test cl, cl
jne 0x40704e
push 8
call fcn.0042017b
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], eax
mov dword [eax], esi
mov dword [eax + 4], ecx
mov edi, dword [esp + 0x50]
inc edi
mov dword [esp + 0x50], edi
cmp esi, 7
je 0x4078eb
cmp esi, 8
je 0x4078eb
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov esi, dword [ebp + 8]
jmp 0x406a2f
test edx, edx
je 0x406874
nop
movzx ecx, word [eax]
movzx eax, cx
mov dword [esp + 0x68], eax
movzx eax, word [edi]
mov dword [esp + 0x48], ecx
mov ecx, eax
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x48]
cmp cx, ax
je 0x4077d3
cmp word [esp + 0x68], ax
jmp 0x406881
mov eax, dword [esp + 0x48]
cmp word [esp + 0x88], ax
jae 0x40691c
mov ecx, dword [esp + 0x7c]
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov dword [edx + 0x18], eax
mov dword [esi], edx
cmp dword [edx + 0x1c], 0
je 0x4069c0
jmp 0x40691e
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x16
test edx, edx
jne 0x40705f
mov edi, dword [esp + 0x3c]
cmp edi, 0x4d0280
je 0x406bad
mov eax, dword [edi + 0xc]
cmp eax, 4
je 0x406fe0
mov esi, dword [edi + 8]
test esi, esi
jne 0x406ff2
cmp eax, 5
jge 0x445152
push 0x4d0280
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.00406020
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 8]
mov eax, dword [ebp + 0xc]
inc edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], edx
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov esi, dword [eax + ecx*4]
cmp edx, 1
jne 0x4070aa
mov edi, dword [esp + 0x3c]
mov esi, dword [esi]
mov ecx, edi
call fcn.00405f80
mov eax, dword [ebp + 0x14]
mov dword [edi + 0xc], 1
mov dword [edi], esi
mov edi, dword [ebp + 0xc]
inc dword [edi]
mov esi, dword [ebp + 8]
jmp 0x406626
mov esi, dword [esp + 0x44]
mov ecx, dword [0x4d2350]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x445691
mov edx, dword [esp + 0x98]
mov eax, dword [0x4d2518]
mov byte [esp + 0xf], 0
cmp eax, dword [edx + 4]
jg 0x44546f
mov dword [0x4d2538], 0
mov dword [0x4d2534], 0
mov dword [esp + 0x7c], 0x4d251c
mov dword [esp + 0x80], 0x4d251c
mov eax, dword [esi + 4]
mov edi, dword [ecx + 4]
mov dword [esp + 0x40], eax
test eax, eax
je 0x4454b8
test edi, edi
je 0x4454c0
mov edx, dword [ecx]
mov esi, dword [esi]
cmp eax, edi
jb 0x406cae
mov edi, eax
test edi, edi
je 0x406caa
lea esp, [esp]
movzx eax, word [esi]
mov dword [esp + 0x4c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x88], ecx
movzx ecx, word [esi]
cmp cx, ax
jne 0x406e54
add esi, 2
add edx, 2
sub edi, 1
jne 0x406c80
xor eax, eax
jmp 0x406cdc
test edi, edi
je 0x406caa
movzx eax, word [esi]
mov dword [esp + 0x4c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x88], ecx
movzx ecx, word [esi]
cmp cx, ax
je 0x407028
cmp word [esp + 0x4c], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
mov ecx, dword [esp + 0x24]
test eax, eax
js 0x406e65
jg 0x406d57
mov byte [esp + 0xf], 1
cmp byte [esp + 0xf], 0
mov eax, dword [ecx + 0x18]
mov edx, dword [esp + 0x80]
mov dword [edx + 0x1c], eax
mov eax, dword [0x4d2350]
mov edx, dword [esp + 0x7c]
mov eax, dword [eax + 0x1c]
mov dword [edx + 0x18], eax
mov ecx, dword [0x4d2350]
mov eax, dword [0x4d2538]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d2350]
mov eax, dword [0x4d2534]
mov dword [ecx + 0x1c], eax
je 0x445691
mov eax, dword [0x4d2350]
test eax, eax
je 0x445691
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x406a0f
jmp 0x445691
mov eax, dword [edx + 4]
jmp 0x4066a2
mov eax, dword [esp + 0x40]
mov esi, dword [ecx + 0x1c]
lea edx, [ecx + 0x1c]
mov dword [esp + 0x48], edx
test esi, esi
je 0x406cef
mov edx, dword [esi + 4]
mov dword [esp + 0x5c], edx
cmp edx, eax
jbe 0x406d7a
mov edx, eax
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x5c], 0
mov edi, edx
mov edx, dword [esp + 0x44]
mov esi, dword [esi]
mov edx, dword [edx]
jbe 0x406dbe
jmp 0x406d90
movzx eax, word [esi]
mov dword [esp + 0x4c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x88], ecx
movzx ecx, word [esi]
cmp cx, ax
jne 0x406dc6
add esi, 2
add edx, 2
sub edi, 1
jne 0x406d90
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x5c], eax
jb 0x406dd8
jmp 0x406dfb
mov eax, dword [esp + 0x88]
cmp word [esp + 0x4c], ax
jae 0x40783e
mov edx, dword [esp + 0x48]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x18]
mov dword [edx], eax
mov eax, dword [0x4d2350]
mov dword [ecx + 0x18], eax
mov dword [0x4d2350], ecx
cmp dword [ecx + 0x1c], 0
je 0x406cef
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x44]
mov dword [edx + 0x1c], ecx
mov edx, dword [0x4d2350]
mov dword [esp + 0x80], edx
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x24], ecx
mov dword [0x4d2350], ecx
jmp 0x406c51
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00407fb0
test eax, eax
js 0x4456c3
mov al, byte [esp + 0x59]
mov ecx, dword [esp + 0x54]
mov byte [esp + 0x17], al
mov dword [esp + 0x20], ecx
jmp 0x406690
mov eax, dword [esp + 0x88]
cmp word [esp + 0x4c], ax
jmp 0x406cd6
mov eax, dword [esp + 0x40]
lea edx, [ecx + 0x18]
mov dword [esp + 0x48], edx
mov edx, dword [edx]
test edx, edx
je 0x406cef
mov esi, dword [edx + 4]
cmp eax, esi
ja 0x4079d5
mov edi, dword [esp + 0x44]
mov esi, dword [edx]
mov dword [esp + 0x38], eax
mov edi, dword [edi]
test eax, eax
je 0x406ec5
movzx eax, word [edi]
mov dword [esp + 0x4c], eax
movzx eax, word [esi]
mov ecx, eax
mov dword [esp + 0x88], ecx
movzx ecx, word [edi]
cmp cx, ax
jne 0x406ecc
add edi, 2
add esi, 2
sub dword [esp + 0x38], 1
jne 0x406e95
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
cmp eax, dword [edx + 4]
jb 0x406ede
jmp 0x406f01
mov eax, dword [esp + 0x88]
cmp word [esp + 0x4c], ax
jae 0x4079e0
mov ecx, edx
mov edx, dword [esp + 0x48]
mov eax, dword [ecx + 0x1c]
mov dword [edx], eax
mov eax, dword [0x4d2350]
mov dword [ecx + 0x1c], eax
mov dword [0x4d2350], ecx
cmp dword [ecx + 0x18], 0
je 0x406cef
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x44]
mov dword [edx + 0x18], ecx
mov edx, dword [0x4d2350]
mov dword [esp + 0x7c], edx
mov ecx, dword [edx + 0x18]
mov dword [esp + 0x24], ecx
mov dword [0x4d2350], ecx
jmp 0x406c51
cmp byte [esp + 0x35], 0
jne 0x407610
push 0x18
call fcn.0042017b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0280
mov dword [esi + 8], 0
call fcn.00406020
mov eax, dword [esp + 8]
mov edi, esi
mov dword [esi + 0x10], 0
mov dword [esi + 0x10], eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 8], edi
mov dword [esp + 0x30], edi
jmp 0x40675f
cmp byte [esp + 0x35], 0
jne 0x4453fe
mov dword [esp + 0x64], edi
jmp 0x406779
mov edi, dword [esp + 8]
jmp 0x406f90
mov ecx, dword [edi + 8]
mov esi, dword [edi + 0x10]
mov dword [esp + 0x38], ecx
test ecx, ecx
jne 0x407a09
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x407b6f
push 0x18
push edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.0042016d
add esp, 8
mov edi, esi
test esi, esi
jne 0x406f90
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
jmp 0x4066d7
mov edi, ecx
jmp 0x4068b3
cmp dword [0x4d028c], 4
jne 0x406b7c
jmp 0x44511b
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x445136
push 0x10
push esi
call fcn.0042016d
mov eax, dword [edi + 0xc]
add esp, 8
mov dword [edi + 8], 0
jmp 0x406b87
mov ecx, eax
mov dword [esp + 0x24], eax
jmp 0x406953
add esi, 2
add edx, 2
sub edi, 1
jne 0x406cb2
jmp 0x406caa
lea eax, [ecx + 1]
mov esi, 0xd
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
xor al, al
mov dword [edx], esi
mov byte [esp + 0x17], al
mov byte [esp + 0x59], al
jmp 0x406aa9
cmp byte [esp + 0x35], 0
jne 0x40777b
push 0x18
call fcn.0042017b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0280
mov dword [esi + 8], 0
call fcn.00406020
mov eax, dword [esp + 8]
mov edi, esi
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x10], 0
mov dword [esi + 0x10], eax
mov dword [esp + 8], edi
mov dword [esp + 0x30], edi
jmp 0x406bb1
cmp byte [esp + 0x35], 0
je 0x406bd5
jmp 0x44522e
test cl, cl
je 0x40765f
mov eax, dword [edx + 4]
cmp dword [eax], 0x12
je 0x40714e
test cl, cl
jne 0x407773
mov eax, edx
cmp dword [eax], 0x14
je 0x445788
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00407fb0
test eax, eax
js 0x4456c3
mov edx, dword [esp + 0x54]
mov cl, byte [esp + 0x59]
mov dword [esp + 0x20], edx
jmp case.0x406a7f.2
test ecx, ecx
je 0x40712a
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
mov edx, eax
cmp ax, 0x48
je 0x444d2b
cmp dx, 0x4f
je 0x444d2b
lea eax, [ecx + 1]
mov esi, 0x12
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
lea eax, [ecx + 1]
mov esi, 0x13
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
test cl, cl
je 0x40716e
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042016d
mov edx, esi
add esp, 8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], edx
cmp byte [esp + 0x58], 0
je 0x4454cd
mov al, 1
mov edi, dword [esp + 0x50]
dec edi
mov byte [esp + 0x59], al
mov byte [esp + 0x17], al
mov dword [esp + 0x50], edi
jmp 0x406ab2
lea eax, [ecx + 1]
mov esi, 1
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x16
test esi, esi
je 0x407a75
cmp byte [esp + 0x35], 0
jne 0x407af7
push 0x18
call fcn.0042017b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0280
mov dword [esi + 8], 0
call fcn.00406020
mov eax, dword [esp + 8]
mov dword [esi + 0x10], 0
mov dword [esi + 0x10], eax
mov eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov dword [esp + 0x30], eax
mov edi, dword [ebp + 0xc]
inc esi
mov edx, dword [ebp + 8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], esi
mov ecx, dword [edi]
mov edx, dword [edx + 4]
mov eax, dword [edx + ecx*4 + 4]
cmp word [eax + 8], 0x47
jne 0x444a0a
cmp esi, 1
je 0x407a88
cmp byte [esp + 0x35], 0
jne 0x444a26
mov edi, dword [esp + 8]
mov dword [esp + 0x6c], 0x49c9ac
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x40], edi
mov esi, dword [eax]
movsx eax, word [eax + 0xa]
mov dword [esp + 0x88], eax
mov eax, dword [0x4d253c]
mov dword [esp + 0x5c], esi
cmp eax, dword [ecx + 4]
jg 0x444a32
cmp esi, dword [0x4d2540]
je 0x444a8f
mov edi, dword [esp + 0x18]
push esi
lea ecx, [edi + 0x470]
call fcn.00411e80
mov esi, dword [ebp + 0xc]
mov al, byte [eax + 0x20]
inc dword [esi]
mov ecx, dword [esi]
mov byte [esp + 0xf], al
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x47
jne 0x4455ef
lea eax, [ecx + 1]
xor ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x94], eax
mov edi, eax
mov dword [esi], eax
mov eax, dword [edx + edi*4]
movsx eax, word [eax + 8]
sub eax, 0x47
je 0x4077bb
sub eax, 1
je 0x4072fd
sub eax, 0x37
je 0x44558a
lea eax, [edi + 1]
jmp 0x4072d6
test ecx, ecx
jne 0x4077b2
lea eax, [edi + 1]
mov dword [esp + 0x64], ecx
mov dword [esi], eax
xor esi, esi
cmp dword [esp + 0x38], edi
jae 0x40741a
lea ebx, [ebx]
mov eax, dword [esp + 0x78]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 1
cmp dword [esp + 0x74], eax
jne 0x407386
add eax, eax
cmp eax, 8
jae 0x407357
mov eax, 8
xor ecx, ecx
mov dword [esp + 0x78], eax
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004201ab
mov esi, eax
add esp, 4
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x444acc
mov dword [esp + 0x70], esi
push 0x10
call fcn.0042017b
mov esi, eax
add esp, 4
lea eax, [esp + 0xb0]
mov ecx, esi
push eax
mov dword [esi + 8], 0
call fcn.00406020
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push edi
mov dword [ecx + edx*4], esi
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
inc ecx
cmp byte [esp + 0x13], 0
mov dword [esp + 0x78], ecx
jne 0x407d65
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x9c]
push eax
push dword [ebp + 8]
call fcn.00406570
test eax, eax
js 0x445601
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x94]
inc esi
mov dword [esp + 0x64], esi
cmp ecx, edi
jne 0x407a31
mov dword [esp + 0xbc], 1
mov dword [esp + 0xb0], 0
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x5c]
push edi
lea ecx, [ecx + 0x470]
call fcn.00411e80
cmp esi, dword [eax + 0x18]
jl 0x4455bb
mov ecx, dword [esp + 0x18]
push edi
lea ecx, [ecx + 0x470]
call fcn.00411e80
cmp esi, dword [eax + 0x1c]
jg 0x4455bb
mov esi, dword [esp + 0x40]
mov ecx, esi
call fcn.00405f80
mov edx, dword [esp + 0x18]
mov dword [esi + 0xc], 1
mov dword [esi], 1
mov eax, dword [edx]
mov eax, dword [eax + 4]
add eax, edx
cmp byte [eax + 0xd], 0
mov ecx, dword [eax + 8]
jne 0x444af7
mov dword [ecx + 0x14], 0
cmp byte [eax + 0xd], 0
mov ecx, dword [eax + 8]
jne 0x444aff
mov byte [ecx + 0x18], 0
mov eax, dword [edx]
mov edi, dword [eax + 4]
add edi, edx
cmp byte [edi + 0xd], 0
mov esi, dword [edi + 8]
jne 0x444b07
lea ecx, [esi + 0x20]
call fcn.00405f80
mov dword [esi + 0x2c], 1
mov dword [esi + 0x20], 0
cmp byte [edi + 0xd], 0
mov eax, dword [edi + 8]
jne 0x444b0f
mov edi, dword [esp + 0x18]
push dword [esp + 0x5c]
mov byte [eax + 0x30], 0
lea ecx, [edi + 0x470]
call fcn.00411e80
push dword [esp + 0x40]
mov edx, dword [eax + 0x10]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0xc]
lea eax, [esp + 0x70]
push eax
mov eax, dword [edi]
mov ecx, dword [ecx + eax]
add ecx, edx
add ecx, edi
call esi
mov dword [esp + 0x6c], 0x49c9ac
test eax, eax
js 0x445609
xor edi, edi
cmp dword [esp + 0x74], edi
jbe 0x4075ae
nop
mov eax, dword [esp + 0x70]
mov esi, dword [eax + edi*4]
test esi, esi
je 0x40759c
mov ecx, dword [esi + 8]
mov dword [esp + 0x64], ecx
test ecx, ecx
je 0x407574
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0
jne 0x407562
push dword [ecx]
call fcn.004201b4
mov eax, dword [esp + 0x68]
add esp, 4
push 4
push dword [eax + 0xc]
call fcn.0042016d
mov ecx, dword [esp + 0x6c]
add esp, 8
push 0x10
push ecx
call fcn.0042016d
add esp, 8
mov dword [esi + 8], 0
mov eax, dword [esi + 0xc]
cmp eax, 5
jge 0x407bf0
push 0x10
push esi
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.0042016d
mov eax, dword [esp + 0x78]
add esp, 8
mov dword [eax + edi*4], 0
inc edi
cmp edi, dword [esp + 0x74]
jb 0x407520
push dword [esp + 0x70]
mov dword [esp + 0x78], 0
call fcn.004201b4
mov edi, dword [ebp + 0xc]
add esp, 4
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xf8], 1
jne 0x406adf
jmp 0x4456bd
mov eax, dword [esp + 0x10]
cmp eax, 0x16
jne 0x407847
lea eax, [ecx + 1]
mov dword [esp + 0x10], 0xb
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x406690
lea eax, [ecx + 1]
xor esi, esi
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov edi, dword [esp + 8]
cmp edi, 0x4d0280
je 0x407655
mov eax, dword [edi + 0xc]
cmp eax, 4
je 0x407cd6
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x407ce8
cmp eax, 5
jge 0x44533c
push 0x4d0280
mov ecx, edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.00406020
mov byte [esp + 0x35], 0
jmp 0x40675f
mov eax, edx
jmp 0x4070cb
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x16
test edi, edi
jne 0x40789a
mov esi, dword [esp + 0x3c]
cmp esi, 0x4d0280
je 0x4076a3
cmp dword [esi + 0xc], 4
je 0x407d53
mov ecx, esi
call fcn.00405f80
push 0x4d0280
mov ecx, esi
call fcn.00406020
mov esi, dword [esp + 8]
mov eax, dword [ebp + 0xc]
inc edi
mov edx, dword [ebp + 8]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x2c], edi
mov ecx, dword [eax]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
cmp edi, 1
jne 0x4078db
mov esi, dword [esp + 0x3c]
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, 4
je 0x444896
test ecx, ecx
jne 0x4448a9
cmp eax, 5
jge 0x4448be
push 0x10
mov dword [esi], 0
mov dword [esi + 0xc], 4
call fcn.0042017b
mov ecx, dword [edi]
add esp, 4
mov dword [eax], ecx
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edi + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0xc]
mov dword [eax + 0xc], ecx
inc dword [ecx]
mov dword [esi + 8], eax
mov edi, dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
inc dword [edi]
cmp byte [edx + 0xfd], 0
jne 0x444984
cmp byte [edx + 0xfe], 0
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
je 0x406626
jmp 0x44499d
mov eax, dword [esp + 0x10]
cmp eax, 0x16
jne 0x4079e9
mov dword [esp + 0x10], 0xc
mov esi, dword [esp + 0x10]
lea eax, [ecx + 1]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406690
mov eax, dword [edx + 4]
jmp 0x4070da
mov edi, dword [esp + 8]
cmp edi, 0x4d0280
je 0x4077a8
cmp dword [edi + 0xc], 4
je 0x445206
mov ecx, edi
call fcn.00405f80
push 0x4d0280
mov ecx, edi
call fcn.00406020
mov edx, dword [esp + 0x1c]
mov byte [esp + 0x35], 0
jmp 0x406bb1
dec ecx
lea eax, [edi + 1]
jmp 0x4072d6
inc ecx
jmp 0x4072f8
lea eax, [ecx + 1]
mov esi, 0xe
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov eax, dword [esp + 0x40]
add edi, 2
add eax, 2
mov dword [esp + 0x40], eax
sub edx, 1
jne 0x406af0
jmp 0x406874
cmp dword [0x4d028c], 4
jne 0x40672a
jmp 0x445236
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x445251
push 0x10
push esi
call fcn.0042016d
mov eax, dword [edi + 0xc]
add esp, 8
mov dword [edi + 8], 0
jmp 0x406735
lea eax, [ecx + 1]
mov esi, 9
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov ecx, dword [esp + 0x24]
jmp 0x406dfb
cmp eax, 0x13
je 0x4075e8
lea eax, [ecx + 1]
mov dword [esp + 0x10], 0x11
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [ecx], eax
jmp 0x406690
dec eax
cmp eax, 0x29
ja case.0x40787a.4
movzx eax, byte [eax + 0x407ebc]
jmp dword [eax*4 + 0x407e9c]
lea eax, [ecx + 1]
mov esi, 7
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov al, 1
jmp 0x40679c
cmp byte [esp + 0x35], 0
je 0x407aa3
mov esi, dword [esp + 8]
cmp esi, 0x4d0280
je 0x4078d1
cmp dword [0x4d028c], 4
je 0x407cc7
mov ecx, esi
call fcn.00405f80
push 0x4d0280
mov ecx, esi
call fcn.00406020
mov byte [esp + 0x35], 0
jmp 0x4076a7
cmp byte [esp + 0x35], 0
je 0x4076cb
jmp 0x44488e
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], esi
mov dword [esp + 8], eax
test esi, esi
je 0x4454f9
cmp esi, 1
mov esi, dword [esp + 0x28]
mov dword [esp + 0x3c], esi
jne 0x445501
mov eax, esi
push eax
lea ecx, [esp + 0x104]
mov dword [esp + 0x10c], 0
call fcn.00406020
lea ecx, [esp + 0x100]
call fcn.00405955
mov edx, dword [esp + 0x10]
test al, al
jne 0x407be2
lea ecx, [esp + 0x100]
call fcn.00405955
test al, al
jne 0x4079be
cmp edx, 7
jne 0x4079be
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00407f40
test eax, eax
js 0x4457bc
cmp dword [esp + 0x10], 8
je 0x445514
cmp dword [esp + 0x1c], 1
jne 0x44552e
mov ecx, esi
call fcn.00405f80
mov byte [esi], 0
cmp byte [esp + 0x17], 0
mov dword [esi + 0xc], 9
jne 0x44554a
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x58], 0
je 0x44556b
mov al, 1
dec edi
mov byte [esp + 0x59], al
mov byte [esp + 0x17], al
mov dword [esp + 0x50], edi
lea ecx, [esp + 0x100]
call fcn.00405f80
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x406a2f
mov eax, esi
mov dword [esp + 0x40], esi
jmp 0x406e85
mov ecx, dword [esp + 0x24]
jmp 0x406f01
cmp eax, 0x13
je 0x40775a
jmp 0x444c91
lea eax, [ecx + 1]
mov esi, 5
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov eax, dword [ecx + 0xc]
dec dword [eax]
mov eax, dword [ecx + 0xc]
cmp dword [eax], 0
je 0x407b4b
push 0x10
push ecx
call fcn.0042016d
add esp, 8
mov dword [edi + 8], 0
jmp 0x406fa2
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, dword [edx + ecx*4]
cmp word [eax + 8], 0x40
jne 0x44559a
lea eax, [ecx + 1]
cmp eax, edi
je 0x44559a
lea ecx, [esp + 0xb0]
mov dword [esp + 0x94], eax
call fcn.00405f80
cmp dword [esp + 0x94], edi
jb 0x407320
jmp 0x40741a
mov ecx, dword [esp + 0x3c]
push 0x4d0280
call fcn.00406424
jmp 0x4071fd
mov edi, dword [esp + 0x3c]
jmp 0x407238
lea eax, [ecx + 1]
mov esi, 2
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
push 0x18
call fcn.0042017b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0280
mov dword [esi + 8], 0
call fcn.00406020
mov eax, dword [esp + 8]
mov dword [esi + 0x10], 0
test eax, eax
jne 0x407c18
mov dword [esi + 0x10], eax
mov dword [esp + 8], esi
mov dword [esp + 0x30], esi
jmp 0x4076a7
lea eax, [ecx + 1]
mov esi, 4
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov ecx, dword [esp + 8]
push 0x4d0280
call fcn.00406424
mov byte [esp + 0x35], 0
jmp 0x4071fd
push 0x4d0280
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], 0x16
call fcn.0041f160
lea ecx, [esp + 0x28]
call fcn.0041f149
mov esi, eax
mov ecx, esi
call fcn.00405f80
mov dword [esi + 0xc], 9
mov byte [esi], 0
mov edi, dword [ebp + 0xc]
inc dword [edi]
jmp 0x406ac7
push dword [ecx]
call fcn.004201b4
mov eax, dword [esp + 0x3c]
add esp, 4
push 4
push dword [eax + 0xc]
call fcn.0042016d
mov ecx, dword [esp + 0x40]
add esp, 8
jmp 0x407a1a
sub eax, 5
cmp eax, 0xa
ja case.0x407b7b.6
jmp dword [eax*4 + 0x407ee8]
push 0x4d0280
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], 0x16
call fcn.0041f160
lea ecx, [esp + 0x28]
call fcn.0041f149
mov esi, eax
mov ecx, esi
call fcn.00405f80
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xc], 9
mov byte [esi], 1
inc dword [edi]
jmp 0x406ac7
lea eax, [ecx + 1]
mov esi, 3
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
lea eax, [ecx + 1]
mov esi, 8
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
cmp edx, 8
jne 0x407946
jmp 0x40795b
sub eax, 5
cmp eax, 0xa
ja case.0x407bfc.6
jmp dword [eax*4 + 0x407f14]
mov ecx, dword [esi]
test ecx, ecx
je case.0x407bfc.6
push ecx
call fcn.00405386
jmp case.0x407bfc.6
mov dword [esi + 0x10], eax
mov dword [esp + 8], esi
mov dword [esp + 0x30], esi
jmp 0x4076a7
push 0x4d2558
call fcn.004205c1
add esp, 4
cmp dword [0x4d2558], 0xffffffff
jne 0x4065a5
push 0x4420d0
call fcn.00420441
add esp, 4
push 0x4d2558
call fcn.00420577
add esp, 4
jmp 0x4065a5
push 0x4d0280
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], 0x16
call fcn.0041f160
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x28]
mov esi, dword [ebp + 8]
mov edx, dword [edi]
lea eax, [edx + 1]
mov dword [edi], eax
mov eax, dword [esi + 4]
mov edx, dword [eax + edx*4]
call fcn.0041f149
mov ecx, dword [esp + 0x18]
push eax
push dword [edx]
call fcn.00408c5f
test eax, eax
js 0x445654
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x14]
jmp 0x406626
cmp dword [esi + 0xc], 4
jne 0x4078be
jmp 0x444873
cmp dword [0x4d028c], 4
jne 0x407628
jmp 0x445321
push ecx
call fcn.00404257
mov eax, dword [edi + 0xc]
mov dword [edi + 8], 0
jmp 0x407633
push 0x4d0280
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], 0x16
call fcn.0041f160
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [edi]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x28]
fld qword [eax]
fstp qword [esp + 0x88]
call fcn.0041f149
mov esi, eax
mov ecx, esi
call fcn.00405f80
fld qword [esp + 0x88]
inc dword [edi]
fstp qword [esi]
mov dword [esi + 0xc], 3
jmp 0x406ac7
cmp dword [0x4d028c], 4
jne 0x407690
jmp 0x444858
push 0
push 0
push 0x100
push dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0xa8]
push eax
push dword [ebp + 8]
call fcn.0040bf7c
jmp 0x4073e4
mov ecx, dword [esi]
test ecx, ecx
je case.0x407bfc.6
push ecx
call fcn.0041c736
jmp case.0x407bfc.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x407bfc.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x407bfc.6
mov ecx, dword [esi + 8]
mov eax, dword [0x4d0288]
cmp ecx, eax
je 0x4076a3
push eax
call fcn.0040478a
jmp 0x4076a3
mov ecx, dword [esi + 8]
mov eax, dword [0x4d0288]
cmp ecx, eax
je 0x4078d1
push eax
call fcn.0040478a
jmp 0x4078d1
mov esi, dword [esi + 0x10]
jmp 0x4076cb
cmp ecx, edi
je 0x40771f
push edi
call fcn.0040478a
jmp 0x40771f
push ecx
call fcn.00404257
mov eax, dword [esi + 0xc]
mov dword [esi + 8], 0
jmp 0x4076e4
sub eax, 5
cmp eax, 0xa
ja case.0x4448ca.6
jmp dword [eax*4 + 0x4458b4]
mov eax, dword [esi]
test eax, eax
je case.0x4448ca.6
push eax
call dword [esp + 0x88]
push 0x10
push dword [esi]
jmp 0x444977
mov eax, dword [esi]
mov dword [esp + 0x38], eax
test eax, eax
je case.0x4448ca.6
lea ecx, [eax + 8]
call fcn.004020f8
push 0x18
jmp 0x444973
mov eax, dword [esi]
mov dword [esp + 0x38], eax
test eax, eax
je case.0x4448ca.6
mov ecx, eax
call fcn.00405890
push 4
jmp 0x444973
mov eax, dword [esi]
push dword [eax + 4]
call fcn.004201b4
add esp, 4
push 8
push dword [esi]
jmp 0x444977
mov ecx, dword [esi]
test ecx, ecx
je case.0x4448ca.6
push ecx
call fcn.00460570
jmp case.0x4448ca.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x4448ca.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4448ca.6
mov eax, dword [esi]
mov dword [esp + 0x38], eax
test eax, eax
je case.0x4448ca.6
mov ecx, eax
call fcn.004020f8
push 0x14
push dword [esp + 0x3c]
call fcn.0042016d
add esp, 8
jmp case.0x4448ca.6
lea ecx, [esp + 0x28]
call fcn.0041f149
mov ecx, eax
call fcn.0048770e
mov edx, dword [esp + 0x18]
jmp 0x407735
lea ecx, [esp + 0x28]
call fcn.0041f149
push eax
mov ecx, edx
call fcn.0048784f
mov eax, dword [ebp + 0x14]
jmp 0x406626
push 0x4d0280
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], 0x16
call fcn.0041f160
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x28]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x38], eax
call fcn.0041f149
mov esi, eax
mov ecx, esi
call fcn.00405f80
mov eax, dword [esp + 0x38]
mov dword [esi + 0xc], 2
mov dword [esi], edi
mov dword [esi + 4], eax
jmp 0x407b41
mov eax, dword [edx + ecx*4]
lea ecx, [esp + 0x28]
push dword [eax]
call fcn.0041f149
mov ecx, eax
call fcn.0047144e
inc dword [edi]
jmp 0x406adf
mov eax, dword [esp + 8]
mov edi, dword [eax + 0x10]
jmp 0x407238
push 0x4d253c
call fcn.004205c1
add esp, 4
cmp dword [0x4d253c], 0xffffffff
jne 0x407288
push 0x49cc5c
lea ecx, [esp + 0x12c]
call fcn.004045fd
mov ecx, dword [0x4d2374]
push dword [eax]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x128]
mov dword [0x4d2540], eax
call fcn.004020f8
push 0x4d253c
call fcn.00420577
add esp, 4
jmp 0x407288
mov ecx, dword [esp + 0x18]
push edi
mov edi, dword [ebp + 0xc]
push edi
push dword [ebp + 8]
call fcn.004871f2
lea ecx, [esp + 0x6c]
mov dword [esp + 0x6c], 0x49c9ac
mov esi, eax
call fcn.0045f789
push dword [esp + 0x70]
call fcn.004201b4
add esp, 4
test esi, esi
js 0x4456bd
jmp 0x4075c5
mov ecx, dword [esp + 0x74]
test ecx, ecx
je 0x407382
shl ecx, 2
push ecx
push eax
push esi
call fcn.004211a0
add esp, 0xc
push dword [esp + 0x70]
call fcn.004201b4
add esp, 4
jmp 0x407382
mov ecx, dword [ecx + 0x38]
jmp 0x407480
mov ecx, dword [ecx + 0x38]
jmp 0x407494
mov esi, dword [esi + 0x38]
jmp 0x4074ac
mov eax, dword [eax + 0x38]
jmp 0x4074cf
mov eax, dword [esi]
test eax, eax
je case.0x407bfc.6
push eax
call dword [esp + 0x88]
push 0x10
push dword [esi]
call fcn.0042016d
add esp, 8
jmp case.0x407bfc.6
mov eax, dword [esi]
push dword [eax + 4]
call fcn.004201b4
add esp, 4
push 8
push dword [esi]
call fcn.0042016d
add esp, 8
jmp case.0x407bfc.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x407bfc.6
push ecx
call fcn.00460570
jmp case.0x407bfc.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x407bfc.6
push ecx
call fcn.004711bd
jmp case.0x407bfc.6
push 0x4d0280
lea ecx, [esp + 0x2c]
mov dword [esp + 0x14], 0x16
call fcn.0041f160
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [edi]
mov edx, dword [esi + 4]
mov eax, dword [edx + ecx*4 + 4]
cmp word [eax + 8], 0x47
je 0x444c3c
mov eax, dword [edx + ecx*4]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [esp + 0xc0], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xc4], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xc8], eax
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xcc], eax
inc dword [eax]
lea eax, [esp + 0xc0]
push eax
call fcn.00406530
test eax, eax
je 0x445623
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041f149
mov ecx, eax
call fcn.00471df5
inc dword [edi]
lea ecx, [esp + 0xc0]
call fcn.004020f8
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
jmp 0x406a2f
lea eax, [esp + 0x9f]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041f149
mov ecx, dword [esp + 0x1c]
push eax
push edi
push esi
push 0
call fcn.0040c600
test eax, eax
js 0x445670
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xf8], 1
je 0x445670
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
jmp 0x406a2f
mov dword [esp + 0x10], 0x10
jmp 0x407762
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x10], 0x16
sete al
test al, al
jne 0x445688
lea eax, [esp + 0xd0]
mov dword [esp + 0xd0], 0
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 1
call fcn.0041f149
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push eax
push edi
push esi
call fcn.00408eb0
test eax, eax
js 0x44567a
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041f149
mov ecx, eax
call fcn.00406424
lea ecx, [esp + 0xd0]
call fcn.00405f80
jmp 0x406a2f
cmp dword [esp + 0x1c], 0
sete al
test al, al
jne 0x4456ee
lea eax, [esp + 0xe0]
mov dword [esp + 0xe0], 0
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 1
call fcn.0041f149
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x1c]
push eax
push edi
push esi
call fcn.00408eb0
test eax, eax
js 0x4456b1
lea eax, [esp + 0xe0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041f149
mov ecx, eax
call fcn.00406424
lea ecx, [esp + 0xe0]
call fcn.00405f80
jmp 0x406a2f
lea eax, [ecx + 1]
mov esi, 6
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
lea eax, [ecx + 1]
mov esi, 0xf
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x17]
test dl, dl
je 0x444de5
mov eax, dword [ecx + 4]
jmp 0x444de7
mov eax, ecx
cmp dword [eax], 0x14
je 0x444e25
test dl, dl
je 0x444df5
mov eax, dword [ecx + 4]
jmp 0x444df7
mov eax, ecx
cmp dword [eax], 0x12
je 0x444e25
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00407fb0
test eax, eax
js 0x4456c3
mov dl, byte [esp + 0x59]
mov ecx, dword [esp + 0x54]
mov byte [esp + 0x17], dl
mov dword [esp + 0x20], ecx
jmp 0x444ddc
cmp dword [esp + 0x2c], 0
sete al
test al, al
jne 0x445716
lea ecx, [esp + 0x28]
call fcn.0041f149
mov ecx, eax
call fcn.00405955
lea ecx, [esp + 0x28]
mov byte [esp + 0xf], al
call fcn.0041f0f3
mov edi, dword [ebp + 0xc]
mov edx, dword [edi]
inc edx
cmp byte [esp + 0xf], 0
mov dword [edi], edx
jne 0x444e9c
mov eax, dword [ebp + 8]
mov ecx, 1
mov esi, dword [eax + 4]
mov eax, dword [esi + edx*4]
movzx eax, word [eax + 8]
cmp ax, 0x57
jne 0x444e7c
inc ecx
jmp 0x444e95
cmp ax, 0x58
jne 0x444e85
dec ecx
jmp 0x444e95
cmp ax, 0x7f
je 0x444e9c
cmp ax, 0x40
jne 0x444e95
test ecx, ecx
je 0x444e9c
inc edx
mov dword [edi], edx
test ecx, ecx
jne 0x444e6c
mov dword [esp + 0x10], 0x12
jmp 0x406ac7
cmp dword [esp + 0x1c], 0
sete al
test al, al
jne 0x445688
mov eax, dword [ebp + 0xc]
lea edx, [ecx + 1]
mov dword [esp + 0x10], 0x16
mov ecx, 1
mov dword [eax], edx
mov eax, dword [edi + edx*4]
mov esi, edx
movzx eax, word [eax + 8]
cmp ax, 0x47
jne 0x444ee0
inc ecx
jmp 0x444efc
cmp ax, 0x48
jne 0x444ee9
dec ecx
jmp 0x444efc
cmp ax, 0x7f
je 0x444f0a
cmp ax, 0x40
jne 0x444efc
mov esi, edx
cmp ecx, 1
je 0x444f0a
mov esi, dword [ebp + 0xc]
inc edx
mov eax, edx
mov dword [esi], edx
mov esi, eax
test ecx, ecx
jne 0x444ece
mov eax, dword [edi + esi*4 - 4]
mov edi, dword [ebp + 0xc]
cmp word [eax + 8], 0x48
mov eax, dword [ebp + 0x14]
jne 0x406bef
test ecx, ecx
jne 0x406bef
lea eax, [esi - 1]
mov dword [edi], eax
jmp 0x406adf
lea eax, [ecx + 1]
mov esi, 0xa
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
jmp 0x406684
sub esp, 0x10
mov dword [esp + 0x20], 0x16
mov ecx, esp
push str.Default
call fcn.004045fd
push 0xffffffffffffffff
push 0x29
jmp 0x444f7b
sub esp, 0x10
mov dword [esp + 0x20], 0x16
mov ecx, esp
push 0x49c9dc
call fcn.004045fd
push 0
push 0x2a
lea ecx, [esp + 0x128]
call fcn.0041c751
push 0x4d0280
lea ecx, [esp + 0x2c]
call fcn.0041f160
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041f149
mov ecx, eax
call fcn.00405928
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x118]
inc dword [edi]
call fcn.004020f8
jmp 0x406ac7
mov dword [esp + 0xa0], 0
mov dl, 1
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 1
mov byte [esp + 0xf], dl
test ecx, ecx
je 0x44501e
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
cmp ax, 0x48
je 0x445002
cmp ax, 0x4f
jne 0x44501e
lea ecx, [esp + 0x28]
call fcn.0041f149
push eax
lea ecx, [esp + 0xa4]
call fcn.00406424
xor dl, dl
mov byte [esp + 0xf], dl
lea ecx, [esp + 0xa0]
call fcn.0045f6c9
test al, al
jne 0x445073
test dl, dl
je 0x44572e
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x171], 0
mov eax, dword [ecx + 0x16c]
je 0x44504c
mov eax, dword [eax + 0x10]
push eax
lea ecx, [esp + 0xa4]
call fcn.00406424
lea ecx, [esp + 0xa0]
call fcn.0045f6c9
test al, al
jne 0x445073
mov edx, 0xa7
jmp 0x445733
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0xf0]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
push eax
lea eax, [esp + 0xa4]
mov dword [esp + 0xf4], 0
push eax
push edi
push esi
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 1
call fcn.00487b13
test eax, eax
js 0x445753
cmp byte [esp + 0xf], 0
mov dword [esp + 0x10], 0x16
jne 0x4450d5
lea ecx, [esp + 0x28]
call fcn.0041f0f3
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041f160
lea ecx, [esp + 0xf0]
call fcn.00405f80
lea ecx, [esp + 0xa0]
call fcn.00405f80
mov eax, dword [esp + 0x30]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
jmp 0x406a2f
mov ecx, dword [edi + 8]
mov eax, dword [0x4d0288]
cmp ecx, eax
je 0x406bad
push eax
call fcn.0040478a
jmp 0x406ba9
push dword [esi]
call fcn.004201b4
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0042016d
add esp, 8
jmp 0x407003
sub eax, 5
cmp eax, 0xa
ja case.0x44515e.6
jmp dword [eax*4 + 0x4458e0]
mov eax, dword [edi]
test eax, eax
je case.0x44515e.6
push eax
call dword [esp + 0x88]
push 0x10
push dword [edi]
jmp 0x4451f9
mov esi, dword [edi]
test esi, esi
je case.0x44515e.6
lea ecx, [esi + 8]
call fcn.004020f8
push 0x18
jmp 0x4451f8
mov esi, dword [edi]
test esi, esi
je case.0x44515e.6
mov ecx, esi
call fcn.00405890
push 4
jmp 0x4451f8
mov eax, dword [edi]
push dword [eax + 4]
call fcn.004201b4
add esp, 4
push 8
push dword [edi]
jmp 0x4451f9
mov ecx, dword [edi]
test ecx, ecx
je case.0x44515e.6
push ecx
call fcn.00460570
jmp case.0x44515e.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x44515e.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x44515e.6
mov esi, dword [edi]
test esi, esi
je case.0x44515e.6
mov ecx, esi
call fcn.004020f8
push 0x14
push esi
call fcn.0042016d
add esp, 8
jmp case.0x44515e.6
cmp dword [0x4d028c], 4
jne 0x407791
mov ecx, dword [edi + 8]
mov eax, dword [0x4d0288]
cmp ecx, eax
je 0x4077a8
push eax
call fcn.0040478a
jmp 0x4077a4
mov edi, dword [edi + 0x10]
jmp 0x406bd5
mov ecx, dword [edi + 8]
mov eax, dword [0x4d0288]
cmp ecx, eax
je 0x40675b
push eax
call fcn.0040478a
jmp 0x40675b
push dword [esi]
call fcn.004201b4
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0042016d
add esp, 8
jmp 0x407812
sub eax, 5
cmp eax, 0xa
ja case.0x445279.6
jmp dword [eax*4 + 0x44590c]
mov eax, dword [edi]
test eax, eax
je case.0x445279.6
push eax
call dword [esp + 0x88]
push 0x10
push dword [edi]
jmp 0x445314
mov esi, dword [edi]
test esi, esi
je case.0x445279.6
lea ecx, [esi + 8]
call fcn.004020f8
push 0x18
jmp 0x445313
mov esi, dword [edi]
test esi, esi
je case.0x445279.6
mov ecx, esi
call fcn.00405890
push 4
jmp 0x445313
mov eax, dword [edi]
push dword [eax + 4]
call fcn.004201b4
add esp, 4
push 8
push dword [edi]
jmp 0x445314
mov ecx, dword [edi]
test ecx, ecx
je case.0x445279.6
push ecx
call fcn.00460570
jmp case.0x445279.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x445279.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x445279.6
mov esi, dword [edi]
test esi, esi
je case.0x445279.6
mov ecx, esi
call fcn.004020f8
push 0x14
push esi
call fcn.0042016d
add esp, 8
jmp case.0x445279.6
mov ecx, dword [edi + 8]
mov eax, dword [0x4d0288]
cmp ecx, eax
je 0x407655
push eax
call fcn.0040478a
jmp 0x407655
sub eax, 5
cmp eax, 0xa
ja case.0x445348.6
jmp dword [eax*4 + 0x445938]
mov eax, dword [edi]
test eax, eax
je case.0x445348.6
push eax
call dword [esp + 0x88]
push 0x10
push dword [edi]
call fcn.0042016d
add esp, 8
jmp case.0x445348.6
mov esi, dword [edi]
test esi, esi
je 0x4453f5
lea ecx, [esi + 8]
call fcn.004020f8
push 0x18
jmp 0x4453ec
mov esi, dword [edi]
test esi, esi
je 0x4453f5
mov ecx, esi
call fcn.00405890
push 4
jmp 0x4453ec
mov eax, dword [edi]
push dword [eax + 4]
call fcn.004201b4
add esp, 4
push 8
push dword [edi]
call fcn.0042016d
add esp, 8
jmp case.0x445348.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x445348.6
push ecx
call fcn.00460570
jmp case.0x445348.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x445348.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x445348.6
mov esi, dword [edi]
test esi, esi
je 0x4453f5
mov ecx, esi
call fcn.004020f8
push 0x14
push esi
call fcn.0042016d
add esp, 8
mov esi, dword [esp + 0x1c]
jmp case.0x445348.6
mov eax, dword [edi + 0x10]
mov dword [esp + 0x64], eax
jmp 0x406779
mov eax, dword [0x4d2364]
mov esi, dword [eax + 8]
jmp 0x4067b6
push 0x4d2518
call fcn.004205c1
add esp, 4
cmp dword [0x4d2518], 0xffffffff
jne 0x4067dc
mov ecx, 0x4d251c
call fcn.00403f6a
push 0x44209e
call fcn.00420441
add esp, 4
push 0x4d2518
call fcn.00420577
add esp, 4
jmp 0x4067dc
test edx, edx
jne 0x406941
test ecx, ecx
jne 0x40689d
jmp 0x406827
push 0x4d2518
call fcn.004205c1
add esp, 4
cmp dword [0x4d2518], 0xffffffff
jne 0x4454a9
mov ecx, 0x4d251c
call fcn.00403f6a
push 0x44209e
call fcn.00420441
add esp, 4
push 0x4d2518
call fcn.00420577
add esp, 4
mov ecx, dword [0x4d2350]
mov dword [esp + 0x24], ecx
jmp 0x406c2a
test edi, edi
jne 0x406e69
test eax, eax
jne 0x406d5b
jmp 0x406c6b
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042016d
mov eax, esi
add esp, 8
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], eax
xor al, al
jmp 0x40717b
mov edi, dword [esp + 0x50]
jmp 0x406ab2
mov edi, dword [ebp + 0xc]
jmp 0x406ad7
cmp byte [esp + 0x35], 0
je 0x407916
mov eax, dword [eax + 0x10]
jmp 0x407916
lea ecx, [esp + 0x28]
call fcn.0041f149
mov esi, eax
mov ecx, esi
call fcn.00405f80
mov byte [esi], 1
jmp 0x40798e
cmp byte [esp + 0x35], 0
je 0x445541
mov eax, dword [esp + 8]
mov esi, dword [eax + 0x10]
jmp 0x407984
mov esi, dword [esp + 8]
jmp 0x407984
mov ecx, dword [esp + 0x20]
push 8
push ecx
mov esi, dword [ecx + 4]
call fcn.0042016d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], eax
jmp 0x4079a4
mov esi, dword [eax + 4]
push 8
push eax
call fcn.0042016d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x54], eax
xor al, al
jmp 0x4079b1
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
mov eax, dword [eax + edi*4 - 4]
jmp 0x4455f5
mov eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x18]
movsx eax, word [eax + 0xa]
push eax
push 0x6f
call fcn.004738d3
lea ecx, [esp + 0xb0]
call fcn.00405f80
jmp 0x445601
push dword [esp + 0x88]
mov ecx, dword [esp + 0x1c]
push 0x70
call fcn.004738d3
lea ecx, [esp + 0x6c]
mov dword [esp + 0x6c], 0x49c9ac
call fcn.0045f789
push dword [esp + 0x70]
call fcn.004201b4
add esp, 4
jmp 0x4456bd
mov eax, dword [edx + ecx*4 - 4]
mov ecx, edi
movsx eax, word [eax + 0xa]
push eax
push 0x6f
call fcn.004738d3
mov dword [esp + 0x6c], 0x49c9ac
lea ecx, [esp + 0x6c]
call fcn.0045f789
push dword [esp + 0x70]
call fcn.004201b4
add esp, 4
jmp 0x4456bd
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
movsx eax, word [eax + 0xa]
push eax
push 0x85
call fcn.004738d3
lea ecx, [esp + 0xc0]
call fcn.004020f8
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
jmp 0x4456bd
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, dword [esp + 0x18]
movsx eax, word [eax + 0xa]
push eax
push 0x86
call fcn.004738d3
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
jmp 0x4456bd
lea ecx, [esp + 0xd0]
call fcn.00405f80
jmp 0x4456bd
movsx eax, word [esi + 0xa]
push eax
push 0x6e
jmp 0x4456a6
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
movsx eax, word [eax + 0xa]
push eax
push 0x79
mov ecx, dword [esp + 0x20]
call fcn.004738d3
jmp 0x4456bd
lea ecx, [esp + 0xe0]
call fcn.00405f80
mov edx, dword [esp + 0x20]
jmp 0x4456e2
push dword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
push 0x6e
call fcn.004738d3
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x20], edx
mov dword [esp + 8], edi
mov eax, dword [esp + 8]
or edi, 0xffffffff
jmp 0x4066cb
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax]
mov eax, dword [edi + eax*4]
movsx eax, word [eax + 0xa]
push eax
push 0x6e
call fcn.004738d3
mov edx, dword [esp + 0x20]
or edi, 0xffffffff
mov eax, dword [esp + 8]
jmp 0x4066cb
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
movsx eax, word [eax + 0xa]
push eax
jmp 0x4457ef
mov edx, 0xa9
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
movzx eax, word [eax + 0xa]
cwde
push eax
push edx
call fcn.004738d3
jmp 0x445777
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x18]
movsx eax, word [eax + 0xa]
push eax
push 0x6e
call fcn.004738d3
lea ecx, [esp + 0xf0]
call fcn.00405f80
lea ecx, [esp + 0xa0]
call fcn.00405f80
jmp 0x4456bd
push dword [esp + 0x60]
push 0x6d
jmp 0x4457f1
push dword [esp + 0x60]
push 0x6b
jmp 0x44579e
push dword [esp + 0x60]
push 0x6d
mov ecx, dword [esp + 0x20]
call fcn.004738d3
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
jmp 0x4456bd
push dword [esp + 0x60]
push 0x6c
jmp 0x44579e
push dword [esp + 0x60]
mov ecx, dword [esp + 0x1c]
push 0x6e
call fcn.004738d3
or edi, 0xffffffff
lea ecx, [esp + 0x100]
mov dword [esp + 0x24], edi
call fcn.00405f80
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 8]
jmp 0x4066cf
push dword [esp + 0x60]
push 0x6e
mov ecx, dword [esp + 0x20]
call fcn.004738d3
mov edx, dword [esp + 0x30]
mov dword [esp + 8], edx
jmp 0x4456bd
mov eax, dword [edi]
test eax, eax
je case.0x407b7b.6
push eax
call dword [esp + 0x88]
push 0x10
push dword [edi]
call fcn.0042016d
add esp, 8
jmp case.0x407b7b.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x407b7b.6
push ecx
call fcn.0041c736
jmp case.0x407b7b.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x407b7b.6
push ecx
call fcn.00405386
jmp case.0x407b7b.6
mov eax, dword [edi]
push dword [eax + 4]
call fcn.004201b4
add esp, 4
push 8
push dword [edi]
call fcn.0042016d
add esp, 8
jmp case.0x407b7b.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x407b7b.6
push ecx
call fcn.00460570
jmp case.0x407b7b.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x407b7b.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x407b7b.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x407b7b.6
push ecx
call fcn.004711bd
jmp case.0x407b7b.6