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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
mov eax, dword fs:[0x2c]
mov dword [esp + 0x1c], ecx
push ebx
push esi
mov ecx, dword [eax]
mov eax, dword [0x4d35a0]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x8c], ecx
cmp eax, dword [ecx + 4]
jg 0x410466
mov ebx, dword [ebp + 0x10]
xor esi, esi
xor al, al
mov word [esp + 0x54], 1
push 8
mov byte [esp + 0x1f], al
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], esi
mov word [esp + 0x3c], 1
call fcn.0042012b
mov ecx, dword [edi]
mov edx, eax
add esp, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], edx
mov dword [esp + 0x4c], 1
mov dword [edx], 0x14
mov dword [edx + 4], esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x14], 0x17
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov dword [esp + 0x64], ecx
movsx eax, word [eax + 0xa]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi]
cmp ecx, eax
je case.0x4100d1.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.0x4100d1.4
movsx eax, dx
cmp eax, 0x33
je 0x40f360
cmp eax, 0x4f
je case.0x4100d1.4
cmp eax, 5
je 0x40f775
cmp eax, 0x58
ja case.0x4100d1.4
movzx eax, byte [eax + 0x410638]
jmp dword [eax*4 + 0x4105cc]
mov eax, dword [esi]
cmp eax, 4
jl 0x4100c0
cmp eax, 0x27
jge 0x4100c0
mov ebx, 0x14
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x20]
test cl, cl
jne 0x40f953
mov eax, edx
imul eax, dword [eax], 0x15
movzx eax, byte [eax + ebx + 0x4b2820]
cmp eax, 3
jne 0x40f6a0
cmp dword [esp + 0x30], 1
jne 0x4552b2
mov eax, dword [esp + 0x34]
xor edi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
test eax, eax
jne 0x40fb59
test edx, edx
je 0x40f355
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042011d
add esp, 8
mov edx, esi
test esi, esi
jne 0x40f341
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x40fb02
cmp ebx, 0x4d1290
je 0x40f3b5
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x41004f
mov esi, dword [ebx + 8]
test esi, esi
jne 0x410061
cmp eax, 5
jge 0x454dad
push 0x4d1290
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00410730
mov eax, dword [esp + 0x10]
inc edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edi
cmp edi, 1
jne 0x40fb42
mov dword [esp + 0x88], ebx
cmp dword [0x4d33a0], 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 ebx, dword [eax]
mov dword [esp + 0x70], ebx
je 0x4100ea
xor al, al
test al, al
jne 0x40f812
cmp byte [0x4d33a9], al
jne 0x454f59
mov esi, dword [0x4d33a4]
cmp dword [esi], 0
je 0x40f812
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d3560]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x454f66
mov dword [0x4d3580], 0
mov dword [0x4d357c], 0
mov dword [esp + 0x6c], 0x4d3564
mov dword [esp + 0x68], 0x4d3564
lea esp, [esp]
mov eax, dword [esi]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], ecx
mov edx, dword [eax + 4]
test ecx, ecx
je 0x454fa9
test edx, edx
je 0x454fb1
mov edi, dword [eax]
mov ebx, dword [ebx]
cmp ecx, edx
jb 0x40f711
mov edx, ecx
test edx, edx
je 0x40f4b5
movzx eax, word [ebx]
mov dword [esp + 0x44], eax
movzx eax, word [edi]
mov ecx, eax
mov dword [esp + 0x40], ecx
movzx ecx, word [ebx]
cmp cx, ax
jne 0x40f4b9
add ebx, 2
add edi, 2
sub edx, 1
jne 0x40f492
xor eax, eax
jmp 0x40f4c8
mov eax, dword [esp + 0x40]
cmp word [esp + 0x44], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x40f56c
jle 0x40f5e3
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x40f5e8
mov edi, dword [edx + 4]
cmp edi, ecx
ja 0x40fba5
mov eax, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
test edi, edi
je 0x40f54d
jmp 0x40f510
movzx ecx, word [eax]
movzx eax, cx
mov dword [esp + 0x78], eax
movzx eax, word [ebx]
mov dword [esp + 0x74], ecx
mov ecx, eax
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x74]
cmp cx, ax
jne 0x40f746
mov eax, dword [esp + 0x44]
add ebx, 2
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
jne 0x40f510
mov ecx, dword [esp + 0x48]
cmp edi, ecx
jb 0x40f755
mov edx, dword [esi]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x1c], edx
mov ebx, dword [esi]
mov dword [esp + 0x68], ebx
mov eax, dword [ebx + 0x1c]
jmp 0x40f695
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x40f5e8
mov eax, dword [edx + 4]
cmp ecx, eax
ja 0x40fbe9
mov edi, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x40f67b
lea ebx, [ebx]
movzx eax, word [ebx]
mov dword [esp + 0x74], eax
movzx eax, word [edi]
mov ecx, eax
mov dword [esp + 0x40], ecx
movzx ecx, word [ebx]
cmp cx, ax
je 0x40f663
cmp word [esp + 0x74], ax
jae 0x40f683
mov ecx, dword [esp + 0x60]
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 0x40f5e8
jmp 0x40f685
mov byte [esp + 0x3f], 1
cmp byte [esp + 0x3f], 0
mov eax, dword [esi]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x6c]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d3580]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d357c]
mov dword [ecx + 0x1c], eax
je 0x40f812
mov eax, dword [esi]
test eax, eax
je 0x40f812
mov eax, dword [eax + 0x14]
test eax, eax
je 0x40f812
push dword [esp + 0x88]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
push eax
inc dword [edi]
push edi
push esi
call fcn.00410830
test eax, eax
js 0x4551db
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 0x14]
jmp 0x40f294
add ebx, 2
add edi, 2
sub dword [esp + 0x44], 1
jne 0x40f5a0
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jb 0x40f5c7
mov edx, dword [esi]
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 0x18], edx
mov ebx, dword [esi]
mov dword [esp + 0x6c], ebx
mov eax, dword [ebx + 0x18]
mov ebx, dword [esp + 0x70]
mov dword [esi], eax
jmp 0x40f460
cmp eax, 6
ja case.0x40f6a9.3
jmp dword [eax*4 + 0x410694]
test cl, cl
jne 0x40fc1a
push 8
call fcn.0042012b
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov edi, dword [esp + 0x4c]
inc edi
mov dword [esp + 0x4c], edi
cmp ebx, 7
je 0x410144
cmp ebx, 8
je 0x410144
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x1c], eax
mov esi, dword [ebp + 8]
jmp 0x40f65b
test edx, edx
je 0x40f4b5
lea esp, [esp]
movzx eax, word [ebx]
mov dword [esp + 0x44], eax
movzx eax, word [edi]
mov ecx, eax
mov dword [esp + 0x40], ecx
movzx ecx, word [ebx]
cmp cx, ax
je 0x41003b
cmp word [esp + 0x44], ax
jmp 0x40f4c2
mov eax, dword [esp + 0x5c]
cmp word [esp + 0x78], ax
jae 0x40f555
mov ecx, dword [esp + 0x60]
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 0x40f5e8
jmp 0x40f557
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x40fc2b
cmp ebx, 0x4d1290
je 0x40f7ca
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x40fbac
mov esi, dword [ebx + 8]
test esi, esi
jne 0x40fbbe
cmp eax, 5
jge 0x454ba4
push 0x4d1290
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00410730
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
inc edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edi
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov esi, dword [eax + ecx*4]
cmp edi, 1
jne 0x40fc6b
mov edi, ebx
mov esi, dword [esi]
mov ecx, edi
call fcn.0040d530
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 0x40f294
mov ebx, dword [0x4d3390]
test ebx, ebx
je 0x4551af
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d3560]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x454fbe
mov dword [0x4d3580], 0
mov dword [0x4d357c], 0
mov dword [esp + 0x60], 0x4d3564
mov dword [esp + 0x68], 0x4d3564
mov esi, dword [esp + 0x70]
mov edi, dword [ebx + 4]
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
test eax, eax
je 0x455003
test edi, edi
je 0x45500b
mov edx, dword [ebx]
mov esi, dword [esi]
cmp eax, edi
jb 0x40f8bb
mov edi, eax
test edi, edi
je 0x40f8b7
lea ecx, [ecx]
movzx eax, word [esi]
mov dword [esp + 0x5c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x78], ecx
movzx ecx, word [esi]
cmp cx, ax
jne 0x40fa42
add esi, 2
add edx, 2
sub edi, 1
jne 0x40f890
xor eax, eax
jmp 0x40f8e7
test edi, edi
je 0x40f8b7
nop
movzx eax, word [esi]
mov dword [esp + 0x5c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x78], ecx
movzx ecx, word [esi]
cmp cx, ax
je 0x40fbf4
cmp word [esp + 0x5c], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x40fa50
jg 0x40f95b
mov byte [esp + 0x3f], 1
cmp byte [esp + 0x3f], 0
mov ecx, dword [esp + 0x68]
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x4d3390]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d3390]
mov eax, dword [0x4d3580]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d3390]
mov eax, dword [0x4d357c]
mov dword [ecx + 0x1c], eax
je 0x4551af
mov eax, dword [0x4d3390]
test eax, eax
je 0x4551af
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x40f634
jmp 0x4551af
mov eax, dword [edx + 4]
jmp 0x40f308
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x70]
lea ecx, [ebx + 0x1c]
mov dword [esp + 0x74], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x40f8f6
mov edx, dword [ecx + 4]
mov dword [esp + 0x6c], edx
cmp edx, eax
jbe 0x40f985
mov edx, eax
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x6c], 0
mov edi, edx
mov edx, dword [esi]
mov esi, dword [ecx]
jbe 0x40f9bd
movzx eax, word [esi]
mov dword [esp + 0x5c], eax
movzx eax, word [edx]
mov ecx, eax
mov dword [esp + 0x78], ecx
movzx ecx, word [esi]
cmp cx, ax
jne 0x40f9c5
add esi, 2
add edx, 2
sub edi, 1
jne 0x40f992
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x6c], eax
jb 0x40f9d4
jmp 0x40f9f7
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x40f9f7
mov ecx, dword [esp + 0x40]
mov ebx, ecx
mov ecx, dword [esp + 0x74]
mov eax, dword [ebx + 0x18]
mov dword [ecx], eax
mov eax, dword [0x4d3390]
mov dword [ebx + 0x18], eax
mov dword [0x4d3390], ebx
cmp dword [ebx + 0x1c], 0
je 0x40f8f6
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x1c], ebx
mov ecx, dword [0x4d3390]
mov dword [esp + 0x68], ecx
mov ebx, dword [ecx + 0x1c]
mov dword [0x4d3390], ebx
jmp 0x40f861
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00410cf0
test eax, eax
js 0x4551e1
mov al, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], ecx
jmp 0x40f2f6
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jmp 0x40f8e1
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 0x18]
lea ecx, [ebx + 0x18]
mov dword [esp + 0x44], ecx
test edx, edx
je 0x40f8f6
mov esi, dword [edx + 4]
cmp eax, esi
ja 0x410272
mov edi, dword [esp + 0x70]
mov esi, dword [edx]
mov dword [esp + 0x40], eax
mov edi, dword [edi]
test eax, eax
je 0x40faae
movzx eax, word [edi]
mov dword [esp + 0x5c], eax
movzx eax, word [esi]
mov ecx, eax
mov dword [esp + 0x78], ecx
movzx ecx, word [edi]
cmp cx, ax
jne 0x40fab5
add edi, 2
add esi, 2
sub dword [esp + 0x40], 1
jne 0x40fa81
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
cmp eax, dword [edx + 4]
jb 0x40fac4
jmp 0x40fae3
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x40fae3
mov ecx, dword [esp + 0x44]
mov ebx, edx
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [0x4d3390]
mov dword [ebx + 0x1c], eax
mov dword [0x4d3390], ebx
cmp dword [ebx + 0x18], 0
je 0x40f8f6
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], ebx
mov ecx, dword [0x4d3390]
mov dword [esp + 0x60], ecx
mov ebx, dword [ecx + 0x18]
mov dword [0x4d3390], ebx
jmp 0x40f861
cmp byte [esp + 0x39], 0
jne 0x40fe51
push 0x18
call fcn.0042012b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d1290
mov dword [esi + 8], 0
call fcn.00410730
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], eax
jmp 0x40f3b9
cmp byte [esp + 0x39], 0
jne 0x454f51
mov dword [esp + 0x88], eax
jmp 0x40f3d2
mov edi, dword [esp + 0x10]
lea ecx, [ecx]
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0x10]
test ebx, ebx
jne 0x41029d
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x4103cb
push 0x18
push edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.0042011d
add esp, 8
mov edi, esi
test esi, esi
jne 0x40fb60
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x40f33d
mov edi, ecx
jmp 0x40f4f8
cmp dword [0x4d129c], 4
jne 0x40f79d
jmp 0x454b6d
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x454b88
push 0x10
push esi
call fcn.0042011d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x40f7a8
mov ecx, eax
mov dword [esp + 0x48], eax
jmp 0x40f58a
add esi, 2
add edx, 2
sub edi, 1
jne 0x40f8c0
jmp 0x40f8b7
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xd
mov dword [esi], eax
jmp 0x40f2f2
xor al, al
mov dword [edx], ebx
mov byte [esp + 0x1b], al
mov byte [esp + 0x55], al
jmp 0x40f6d3
cmp byte [esp + 0x39], 0
jne 0x40ffd6
push 0x18
call fcn.0042012b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d1290
mov dword [esi + 8], 0
call fcn.00410730
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
jmp 0x40f7ce
cmp byte [esp + 0x39], 0
jne 0x454d6e
mov edi, edx
jmp 0x40f7f0
test cl, cl
je 0x40fea4
mov eax, dword [edx + 4]
cmp dword [eax], 0x12
je 0x40fd0e
test cl, cl
jne 0x40ffce
mov eax, edx
cmp dword [eax], 0x14
je 0x45527e
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00410cf0
test eax, eax
js 0x4551e1
mov edx, dword [esp + 0x50]
mov cl, byte [esp + 0x55]
mov dword [esp + 0x20], edx
jmp case.0x40f6a9.2
test ecx, ecx
je 0x40fcea
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
mov edx, eax
cmp ax, 0x48
je 0x454780
cmp dx, 0x4f
je 0x454780
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x12
mov dword [esi], eax
jmp 0x40f2f2
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x13
mov dword [esi], eax
jmp 0x40f2f2
test cl, cl
je 0x40fd2a
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042011d
mov edx, esi
add esp, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], edx
cmp byte [esp + 0x54], 0
je 0x455018
mov al, 1
mov edi, dword [esp + 0x4c]
dec edi
mov byte [esp + 0x55], al
mov byte [esp + 0x1b], al
mov dword [esp + 0x4c], edi
jmp 0x40f6dc
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 1
mov dword [esi], eax
jmp 0x40f2f2
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test esi, esi
je 0x4102c5
cmp byte [esp + 0x39], 0
jne 0x41035b
push 0x18
call fcn.0042012b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d1290
mov dword [esi + 8], 0
call fcn.00410730
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 8]
inc esi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], esi
mov edx, dword [eax + 4]
mov ecx, dword [edi]
mov eax, dword [edx + ecx*4 + 4]
cmp word [eax + 8], 0x47
jne 0x4545b3
cmp esi, 1
je 0x4102f3
cmp byte [esp + 0x39], 0
mov eax, dword [esp + 0x10]
jne 0x4545cf
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
push edi
push esi
push 0
call fcn.004119c0
test eax, eax
js 0x4551db
mov eax, dword [esp + 0x28]
cmp dword [eax + 0xfc], 1
jne 0x40f65b
jmp 0x4551db
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x41009e
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0xb
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x40f2f6
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
xor ebx, ebx
mov dword [esi], eax
jmp 0x40f2f2
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d1290
je 0x40fe9a
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x410528
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x41053a
cmp eax, 5
jge 0x454e79
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d1290
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.00410730
mov byte [esp + 0x39], 0
jmp 0x40f3b5
mov eax, edx
jmp 0x40fc8b
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x4100f1
cmp ebx, 0x4d1290
je 0x40ff00
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x4105a3
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x4105b5
cmp eax, 5
jge 0x45435f
push 0x4d1290
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00410730
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
inc edi
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edi
mov ecx, dword [esi]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
cmp edi, 1
jne 0x410132
mov esi, ebx
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, 4
je 0x454433
test ecx, ecx
jne 0x454446
cmp eax, 5
jge 0x45445b
push 0x10
mov dword [esi], 0
mov dword [esi + 0xc], 4
call fcn.0042012b
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 + 0x28]
inc dword [edi]
cmp byte [edx + 0x102], 0
jne 0x45451a
cmp byte [edx + 0x103], 0
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
je 0x40f294
jmp 0x454533
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x41027d
mov dword [esp + 0x14], 0xc
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x40f2f6
mov eax, dword [edx + 4]
jmp 0x40fc9a
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d1290
je 0x41001f
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x454c55
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x454c7d
cmp eax, 5
jge 0x454c96
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d1290
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.00410730
mov byte [esp + 0x39], 0
jmp 0x40f7ca
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xe
mov dword [esi], eax
jmp 0x40f2f2
add ebx, 2
add edi, 2
sub edx, 1
jne 0x40f720
jmp 0x40f4b5
cmp dword [0x4d129c], 4
jne 0x40f388
jmp 0x454d76
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x454d91
push 0x10
push esi
call fcn.0042011d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x40f393
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 9
mov dword [esi], eax
jmp 0x40f2f2
cmp eax, 0x13
je 0x40fe29
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0x11
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x40f2f6
dec eax
cmp eax, 0x29
ja case.0x4100d1.4
movzx eax, byte [eax + 0x4106d0]
jmp dword [eax*4 + 0x4106b0]
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 7
mov dword [esi], eax
jmp 0x40f2f2
mov al, 1
jmp 0x40f3f5
cmp byte [esp + 0x39], 0
je 0x41030c
mov esi, dword [esp + 0x10]
cmp esi, 0x4d1290
je 0x410128
cmp dword [0x4d129c], 4
je 0x410507
mov ecx, esi
call fcn.0040d530
push 0x4d1290
mov ecx, esi
call fcn.00410730
mov byte [esp + 0x39], 0
jmp 0x40ff00
cmp byte [esp + 0x39], 0
jne 0x45442b
mov esi, edx
jmp 0x40ff26
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ebx
test esi, esi
je 0x455040
cmp esi, 1
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jne 0x455050
mov eax, ebx
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0xec], 0
call fcn.00410730
lea ecx, [esp + 0xe0]
call fcn.00401c93
mov ecx, dword [esp + 0x14]
test al, al
jne 0x41043e
cmp ecx, 7
jne 0x41025b
mov eax, dword [ebp + 8]
xor esi, esi
mov ebx, dword [eax + 4]
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov edx, dword [ebx + ecx*4]
movzx eax, word [edx + 8]
cmp ax, 0x47
je 0x455066
cmp ax, 0x48
je 0x45506c
cmp ax, 0x7f
je 0x455094
test esi, esi
jne 0x4101e9
test ax, ax
je 0x4101f1
cmp ax, 0x40
je 0x410205
mov eax, dword [ebp + 0xc]
inc ecx
mov dword [eax], ecx
jmp 0x4101b5
mov eax, dword [edx]
cmp eax, 4
jl 0x45507a
cmp eax, 0x27
jge 0x45507a
cmp dword [esp + 0x14], 8
je 0x4550cb
cmp dword [esp + 0x1c], 1
mov ebx, dword [esp + 0x24]
jne 0x4550e9
mov esi, ebx
mov ecx, esi
call fcn.0040d530
mov byte [esi], 0
cmp byte [esp + 0x1b], 0
mov dword [esi + 0xc], 9
jne 0x455105
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x54], 0
je 0x455126
mov al, 1
dec edi
mov byte [esp + 0x55], al
mov byte [esp + 0x1b], al
mov dword [esp + 0x4c], edi
lea ecx, [esp + 0xe0]
call fcn.0040d530
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x40f65b
mov eax, esi
mov dword [esp + 0x48], esi
jmp 0x40fa71
cmp eax, 0x13
je 0x40ffb5
jmp 0x4546e6
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 5
mov dword [esi], eax
jmp 0x40f2f2
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x4103af
push 0x10
push ebx
call fcn.0042011d
add esp, 8
mov dword [edi + 8], 0
jmp 0x40fb6e
cmp ebx, 0x4d1290
je 0x40fdb2
cmp dword [ebx + 0xc], 4
je 0x410516
mov ecx, ebx
call fcn.0040d530
push 0x4d1290
mov ecx, ebx
call fcn.00410730
jmp 0x40fdb2
mov eax, ebx
jmp 0x40fded
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 2
mov dword [esi], eax
jmp 0x40f2f2
push 0x18
call fcn.0042012b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d1290
mov dword [esi + 8], 0
call fcn.00410730
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x410454
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
jmp 0x40ff04
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 4
mov dword [esi], eax
jmp 0x40f2f2
mov ecx, dword [esp + 0x10]
push 0x4d1290
call fcn.0040a35b
mov byte [esp + 0x39], 0
jmp 0x40fdb2
push 0x4d1290
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e28e
lea ecx, [esp + 0x2c]
call fcn.0041e55a
mov esi, eax
mov ecx, esi
call fcn.0040d530
mov dword [esi + 0xc], 9
mov byte [esi], 0
mov edi, dword [ebp + 0xc]
inc dword [edi]
jmp 0x40f6f1
push dword [ebx]
call fcn.00420164
add esp, 4
push 4
push dword [ebx + 0xc]
call fcn.0042011d
add esp, 8
jmp 0x4102ae
sub eax, 5
cmp eax, 0xa
ja case.0x4103d7.6
jmp dword [eax*4 + 0x4106fc]
push 0x4d1290
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e28e
lea ecx, [esp + 0x2c]
call fcn.0041e55a
mov esi, eax
mov ecx, esi
call fcn.0040d530
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xc], 9
mov byte [esi], 1
inc dword [edi]
jmp 0x40f6f1
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 3
mov dword [esi], eax
jmp 0x40f2f2
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 8
mov dword [esi], eax
jmp 0x40f2f2
cmp ecx, 8
je 0x4101a8
test al, al
jne 0x41025b
jmp 0x41019f
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
jmp 0x40ff04
push 0x4d35a0
call fcn.00420592
add esp, 4
cmp dword [0x4d35a0], 0xffffffff
jne 0x40f216
push 0x4427cb
call fcn.004203f3
add esp, 4
push 0x4d35a0
call fcn.00420548
add esp, 4
jmp 0x40f216
push 0x4d1290
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e28e
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0x2c]
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.0041e55a
mov ebx, dword [esp + 0x28]
mov ecx, ebx
push eax
push dword [edx]
call fcn.0041e2f2
test eax, eax
js 0x455174
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x24], ebx
jmp 0x40f294
cmp dword [esi + 0xc], 4
jne 0x410115
jmp 0x454410
cmp dword [0x4d129c], 4
jne 0x4102db
jmp 0x454598
cmp dword [0x4d129c], 4
jne 0x40fe69
jmp 0x454e5e
push ecx
call fcn.0041e570
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x40fe74
push 0x4d1290
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e28e
mov edi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [edi]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x2c]
fld qword [eax]
fstp qword [esp + 0x78]
call fcn.0041e55a
mov esi, eax
mov ecx, esi
call fcn.0040d530
fld qword [esp + 0x78]
inc dword [edi]
fstp qword [esi]
mov dword [esi + 0xc], 3
jmp 0x40f6f1
cmp dword [0x4d129c], 4
jne 0x40fed3
jmp 0x454344
push ecx
call fcn.0041e570
mov eax, dword [ebx + 0xc]
mov dword [ebx + 8], 0
jmp 0x40fede
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x40ff00
push eax
call fcn.0040ad69
jmp 0x40ff00
sub eax, 5
cmp eax, 0xa
ja case.0x45436b.6
jmp dword [eax*4 + 0x455378]
mov eax, dword [ebx]
test eax, eax
je case.0x45436b.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [ebx]
jmp 0x454403
mov esi, dword [ebx]
test esi, esi
je case.0x45436b.6
lea ecx, [esi + 8]
call fcn.0040ac28
push 0x18
jmp 0x454402
mov esi, dword [ebx]
test esi, esi
je case.0x45436b.6
mov ecx, esi
call fcn.0041e1db
push 4
jmp 0x454402
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.00420164
add esp, 4
push 8
push dword [ebx]
jmp 0x454403
mov ecx, dword [ebx]
test ecx, ecx
je case.0x45436b.6
push ecx
call fcn.004603e0
jmp case.0x45436b.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x45436b.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x45436b.6
mov esi, dword [ebx]
test esi, esi
je case.0x45436b.6
mov ecx, esi
call fcn.0040ac28
push 0x14
push esi
call fcn.0042011d
add esp, 8
jmp case.0x45436b.6
mov ecx, dword [esi + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x410128
push eax
call fcn.0040ad69
jmp 0x410128
mov esi, dword [edx + 0x10]
jmp 0x40ff26
cmp ecx, edi
je 0x40ff7a
push edi
call fcn.0040ad69
jmp 0x40ff7a
push ecx
call fcn.0041e570
mov eax, dword [esi + 0xc]
mov dword [esi + 8], 0
jmp 0x40ff3f
sub eax, 5
cmp eax, 0xa
ja case.0x454467.6
jmp dword [eax*4 + 0x4553a4]
mov eax, dword [esi]
test eax, eax
je case.0x454467.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [esi]
call fcn.0042011d
add esp, 8
jmp case.0x454467.6
mov ebx, dword [esi]
test ebx, ebx
je 0x454511
lea ecx, [ebx + 8]
call fcn.0040ac28
push 0x18
jmp 0x454508
mov ebx, dword [esi]
test ebx, ebx
je 0x454511
mov ecx, ebx
call fcn.0041e1db
push 4
jmp 0x454508
mov eax, dword [esi]
push dword [eax + 4]
call fcn.00420164
add esp, 4
push 8
push dword [esi]
call fcn.0042011d
add esp, 8
jmp case.0x454467.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x454467.6
push ecx
call fcn.004603e0
jmp case.0x454467.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x454467.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x454467.6
mov ebx, dword [esi]
test ebx, ebx
je 0x454511
mov ecx, ebx
call fcn.0040ac28
push 0x14
push ebx
call fcn.0042011d
add esp, 8
mov ebx, dword [esp + 0x24]
jmp case.0x454467.6
lea ecx, [esp + 0x2c]
call fcn.0041e55a
mov ecx, eax
call fcn.00487db9
mov edx, dword [esp + 0x28]
jmp 0x40ff90
lea ecx, [esp + 0x2c]
call fcn.0041e55a
push eax
mov ecx, edx
call fcn.00487ef8
mov eax, dword [ebp + 0x14]
jmp 0x40f294
push 0x4d1290
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e28e
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [esi]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
lea ecx, [esp + 0x2c]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
call fcn.0041e55a
mov esi, eax
mov ecx, esi
call fcn.0040d530
mov dword [esi + 0xc], 2
mov dword [esi], edi
mov dword [esi + 4], ebx
jmp 0x4103a5
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x40fdb2
push eax
call fcn.0040ad69
jmp 0x40fdb2
mov eax, dword [edx + ecx*4]
lea ecx, [esp + 0x2c]
push dword [eax]
call fcn.0041e55a
mov ecx, eax
call fcn.0047183e
inc dword [edi]
jmp 0x40f709
mov eax, dword [eax + 0x10]
jmp 0x40fded
push 0x4d1290
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e28e
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 0x454693
mov eax, dword [edx + ecx*4]
mov ebx, dword [esp + 0x28]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov dword [esp + 0xa0], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xa4], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0xa8], eax
mov eax, dword [ecx + 0xc]
mov ecx, ebx
mov dword [esp + 0xac], eax
inc dword [eax]
lea eax, [esp + 0xa0]
push eax
call fcn.0041a921
test eax, eax
je 0x455145
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e55a
mov ecx, eax
call fcn.004721a8
inc dword [edi]
lea ecx, [esp + 0xa0]
call fcn.0040ac28
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
jmp 0x40f65b
lea eax, [esp + 0x87]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e55a
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
push eax
push edi
push esi
push 0
call fcn.0040c210
test eax, eax
js 0x45518e
cmp dword [ebx + 0xfc], 1
je 0x45518e
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
jmp 0x40f65b
mov dword [esp + 0x14], 0x10
jmp 0x40ffbd
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x16
sete al
test al, al
jne 0x4551a6
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], 0
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 1
call fcn.0041e55a
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.00410830
test eax, eax
js 0x455198
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e55a
mov ecx, eax
call fcn.0040a35b
lea ecx, [esp + 0xb0]
call fcn.0040d530
jmp 0x40f65b
cmp dword [esp + 0x1c], 0
sete al
test al, al
jne 0x4551a6
lea eax, [esp + 0xc0]
mov dword [esp + 0xc0], 0
push eax
lea ecx, [esp + 0x30]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 1
call fcn.0041e55a
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.00410830
test eax, eax
js 0x4551cf
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e55a
mov ecx, eax
call fcn.0040a35b
lea ecx, [esp + 0xc0]
call fcn.0040d530
jmp 0x40f65b
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 6
mov dword [esi], eax
jmp 0x40f2f2
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xf
mov dword [esi], eax
jmp 0x40f2f2
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x45483a
mov eax, dword [ecx + 4]
jmp 0x45483c
mov eax, ecx
cmp dword [eax], 0x14
je 0x45487a
test dl, dl
je 0x45484a
mov eax, dword [ecx + 4]
jmp 0x45484c
mov eax, ecx
cmp dword [eax], 0x12
je 0x45487a
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00410cf0
test eax, eax
js 0x4551e1
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], dl
mov dword [esp + 0x20], ecx
jmp 0x454831
cmp dword [esp + 0x30], 0
sete al
test al, al
jne 0x45520c
lea ecx, [esp + 0x2c]
call fcn.0041e55a
mov ecx, eax
call fcn.00401c93
lea ecx, [esp + 0x2c]
mov bl, al
call fcn.0041bc6c
mov edi, dword [ebp + 0xc]
mov edx, dword [edi]
inc edx
mov dword [edi], edx
test bl, bl
jne 0x4548ec
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 0x4548cc
inc ecx
jmp 0x4548e5
cmp ax, 0x58
jne 0x4548d5
dec ecx
jmp 0x4548e5
cmp ax, 0x7f
je 0x4548ec
cmp ax, 0x40
jne 0x4548e5
test ecx, ecx
je 0x4548ec
inc edx
mov dword [edi], edx
test ecx, ecx
jne 0x4548bc
mov dword [esp + 0x14], 0x12
jmp 0x40f6f1
cmp dword [esp + 0x1c], 0
sete al
test al, al
jne 0x4551a6
mov esi, dword [ebp + 0xc]
lea edx, [ecx + 1]
mov dword [esp + 0x14], 0x16
mov ecx, 1
mov ebx, edx
mov dword [esi], edx
mov eax, dword [edi + edx*4]
movzx eax, word [eax + 8]
cmp ax, 0x47
jne 0x454930
inc ecx
jmp 0x45494c
cmp ax, 0x48
jne 0x454939
dec ecx
jmp 0x45494c
mov esi, ebx
cmp ax, 0x7f
je 0x45495a
cmp ax, 0x40
jne 0x45494c
cmp ecx, 1
je 0x45495a
mov eax, dword [ebp + 0xc]
inc edx
mov ebx, edx
mov esi, ebx
mov dword [eax], edx
test ecx, ecx
jne 0x454920
mov eax, dword [edi + esi*4 - 4]
mov ebx, dword [esp + 0x24]
mov edi, dword [ebp + 0xc]
cmp word [eax + 8], 0x48
mov eax, dword [ebp + 0x14]
jne 0x40f80a
test ecx, ecx
jne 0x40f80a
lea eax, [esi - 1]
mov dword [edi], eax
jmp 0x40f709
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xa
mov dword [esi], eax
jmp 0x40f2f2
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push str.Default
call fcn.0040a1d4
push 0xffffffffffffffff
push 0x29
jmp 0x4549cf
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push 0x49dc1c
call fcn.0040a1d4
push 0
push 0x2a
lea ecx, [esp + 0x108]
call fcn.0041b4e8
push 0x4d1290
lea ecx, [esp + 0x30]
call fcn.0041e28e
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e55a
mov ecx, eax
call fcn.0041b48b
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0xf8]
inc dword [edi]
call fcn.0040ac28
jmp 0x40f6f1
mov dword [esp + 0x90], 0
mov bl, 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 1
test ecx, ecx
je 0x454a6a
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
cmp ax, 0x48
je 0x454a52
cmp ax, 0x4f
jne 0x454a6a
lea ecx, [esp + 0x2c]
call fcn.0041e55a
push eax
lea ecx, [esp + 0x94]
call fcn.0040a35b
xor bl, bl
lea ecx, [esp + 0x90]
call fcn.00485d80
test al, al
jne 0x454ac8
test bl, bl
je 0x455224
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x170], 0
je 0x454aae
cmp byte [ecx + 0x179], 0
mov eax, dword [ecx + 0x174]
je 0x454aa1
mov eax, dword [eax + 0x10]
push eax
lea ecx, [esp + 0x94]
call fcn.0040a35b
lea ecx, [esp + 0x90]
call fcn.00485d80
test al, al
jne 0x454ac8
mov edx, 0xa7
jmp 0x455229
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0xd0]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
lea eax, [esp + 0x94]
mov dword [esp + 0xd4], 0
push eax
push edi
push esi
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 1
call fcn.00488305
test eax, eax
js 0x455249
mov dword [esp + 0x14], 0x16
test bl, bl
jne 0x454b27
lea ecx, [esp + 0x2c]
call fcn.0041bc6c
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e28e
lea ecx, [esp + 0xd0]
call fcn.0040d530
lea ecx, [esp + 0x90]
call fcn.0040d530
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
jmp 0x40f65b
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x40f7ca
push eax
call fcn.0040ad69
jmp 0x40f7ca
push dword [esi]
call fcn.00420164
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0042011d
add esp, 8
jmp 0x40fbcf
sub eax, 5
cmp eax, 0xa
ja case.0x454bb0.6
jmp dword [eax*4 + 0x4553d0]
mov eax, dword [ebx]
test eax, eax
je case.0x454bb0.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [ebx]
jmp 0x454c48
mov esi, dword [ebx]
test esi, esi
je case.0x454bb0.6
lea ecx, [esi + 8]
call fcn.0040ac28
push 0x18
jmp 0x454c47
mov esi, dword [ebx]
test esi, esi
je case.0x454bb0.6
mov ecx, esi
call fcn.0041e1db
push 4
jmp 0x454c47
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.00420164
add esp, 4
push 8
push dword [ebx]
jmp 0x454c48
mov ecx, dword [ebx]
test ecx, ecx
je case.0x454bb0.6
push ecx
call fcn.004603e0
jmp case.0x454bb0.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x454bb0.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x454bb0.6
mov esi, dword [ebx]
test esi, esi
je case.0x454bb0.6
mov ecx, esi
call fcn.0040ac28
push 0x14
push esi
call fcn.0042011d
add esp, 8
jmp case.0x454bb0.6
cmp dword [0x4d129c], 4
jne 0x40ffee
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x41001f
push eax
call fcn.0040ad69
jmp 0x41001f
push ecx
call fcn.0041e570
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x40fff9
sub eax, 5
cmp eax, 0xa
ja case.0x454ca2.6
jmp dword [eax*4 + 0x4553fc]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x454ca2.6
push eax
call dword [esp + 0x68]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x454d61
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x454ca2.6
lea ecx, [esi + 8]
call fcn.0040ac28
push 0x18
jmp 0x454d60
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x454ca2.6
mov ecx, esi
call fcn.0041e1db
push 4
jmp 0x454d60
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.00420164
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x454d61
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x454ca2.6
push ecx
call fcn.004603e0
jmp case.0x454ca2.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x454ca2.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x454ca2.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x454ca2.6
mov ecx, esi
call fcn.0040ac28
push 0x14
push esi
call fcn.0042011d
add esp, 8
jmp case.0x454ca2.6
mov edi, dword [edx + 0x10]
jmp 0x40f7f0
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x40f3b5
push eax
call fcn.0040ad69
jmp 0x40f3b5
push dword [esi]
call fcn.00420164
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0042011d
add esp, 8
jmp 0x410072
sub eax, 5
cmp eax, 0xa
ja case.0x454db9.6
jmp dword [eax*4 + 0x455428]
mov eax, dword [ebx]
test eax, eax
je case.0x454db9.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [ebx]
jmp 0x454e51
mov esi, dword [ebx]
test esi, esi
je case.0x454db9.6
lea ecx, [esi + 8]
call fcn.0040ac28
push 0x18
jmp 0x454e50
mov esi, dword [ebx]
test esi, esi
je case.0x454db9.6
mov ecx, esi
call fcn.0041e1db
push 4
jmp 0x454e50
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.00420164
add esp, 4
push 8
push dword [ebx]
jmp 0x454e51
mov ecx, dword [ebx]
test ecx, ecx
je case.0x454db9.6
push ecx
call fcn.004603e0
jmp case.0x454db9.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x454db9.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x454db9.6
mov esi, dword [ebx]
test esi, esi
je case.0x454db9.6
mov ecx, esi
call fcn.0040ac28
push 0x14
push esi
call fcn.0042011d
add esp, 8
jmp case.0x454db9.6
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d1298]
cmp ecx, eax
je 0x40fe9a
push eax
call fcn.0040ad69
jmp 0x40fe9a
sub eax, 5
cmp eax, 0xa
ja case.0x454e85.6
jmp dword [eax*4 + 0x455454]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x454e85.6
push eax
call dword [esp + 0x68]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x454f44
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x454e85.6
lea ecx, [esi + 8]
call fcn.0040ac28
push 0x18
jmp 0x454f43
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x454e85.6
mov ecx, esi
call fcn.0041e1db
push 4
jmp 0x454f43
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.00420164
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x454f44
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x454e85.6
push ecx
call fcn.004603e0
jmp case.0x454e85.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x454e85.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x454e85.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x454e85.6
mov ecx, esi
call fcn.0040ac28
push 0x14
push esi
call fcn.0042011d
add esp, 8
jmp case.0x454e85.6
mov eax, dword [eax + 0x10]
jmp 0x40fb4d
mov eax, dword [0x4d33a4]
mov esi, dword [eax + 8]
jmp 0x40f40f
push 0x4d3560
call fcn.00420592
add esp, 4
cmp dword [0x4d3560], 0xffffffff
jne 0x40f435
mov ecx, 0x4d3564
call fcn.0040ae03
push 0x442799
call fcn.004203f3
add esp, 4
push 0x4d3560
call fcn.00420548
add esp, 4
jmp 0x40f435
test edx, edx
jne 0x40f578
test ecx, ecx
jne 0x40f4e2
jmp 0x40f480
push 0x4d3560
call fcn.00420592
add esp, 4
cmp dword [0x4d3560], 0xffffffff
jne 0x454ff8
mov ecx, 0x4d3564
call fcn.0040ae03
push 0x442799
call fcn.004203f3
add esp, 4
push 0x4d3560
call fcn.00420548
add esp, 4
mov ebx, dword [0x4d3390]
jmp 0x40f83d
test edi, edi
jne 0x40fa54
test eax, eax
jne 0x40f963
jmp 0x40f87f
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042011d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x40fd37
mov edi, dword [esp + 0x4c]
jmp 0x40f6dc
mov eax, dword [esp + 0x34]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x40f709
cmp byte [esp + 0x39], 0
je 0x45505f
mov eax, dword [esi + 0x10]
jmp 0x41016f
mov eax, esi
jmp 0x41016f
inc esi
jmp 0x4101da
sub esi, 1
js 0x410205
jmp 0x4101da
cmp eax, 3
je 0x4101e9
add eax, 0xffffffd9
cmp eax, 3
ja 0x410205
jmp 0x4101e9
test esi, esi
je 0x410205
push dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
push 0x6e
call fcn.00473d0b
or edi, 0xffffffff
lea ecx, [esp + 0xe0]
mov dword [esp + 0x1c], edi
call fcn.0040d530
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
jmp 0x40f335
lea ecx, [esp + 0x2c]
call fcn.0041e55a
mov esi, eax
mov ecx, esi
call fcn.0040d530
mov ebx, dword [esp + 0x24]
mov byte [esi], 1
jmp 0x41022b
cmp byte [esp + 0x39], 0
je 0x4550fc
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x10]
jmp 0x410221
mov esi, dword [esp + 0x10]
jmp 0x410221
mov ecx, dword [esp + 0x20]
push 8
push ecx
mov esi, dword [ecx + 4]
call fcn.0042011d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
jmp 0x410241
mov esi, dword [eax + 4]
push 8
push eax
call fcn.0042011d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x41024e
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, ebx
movsx eax, word [eax + 0xa]
push eax
push 0x85
call fcn.00473d0b
lea ecx, [esp + 0xa0]
call fcn.0040ac28
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4551db
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4 - 4]
mov ecx, ebx
movsx eax, word [eax + 0xa]
push eax
push 0x86
call fcn.00473d0b
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4551db
lea ecx, [esp + 0xb0]
call fcn.0040d530
jmp 0x4551db
movsx eax, word [esi + 0xa]
push eax
push 0x6e
jmp 0x4551c4
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 + 0x30]
call fcn.00473d0b
jmp 0x4551db
lea ecx, [esp + 0xc0]
call fcn.0040d530
mov edx, dword [esp + 0x20]
jmp 0x455200
push dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
push 0x6e
call fcn.00473d0b
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
or edi, 0xffffffff
jmp 0x40f331
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 0x4552b6
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 + 0x28]
movzx eax, word [eax + 0xa]
cwde
push eax
push edx
call fcn.00473d0b
jmp 0x45526d
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x28]
movsx eax, word [eax + 0xa]
push eax
push 0x6e
call fcn.00473d0b
lea ecx, [esp + 0xd0]
call fcn.0040d530
lea ecx, [esp + 0x90]
call fcn.0040d530
jmp 0x4551db
push dword [esp + 0x58]
push 0x6d
jmp 0x4552b8
push dword [esp + 0x58]
push 0x6b
jmp 0x455294
push dword [esp + 0x58]
push 0x6d
mov ecx, dword [esp + 0x30]
call fcn.00473d0b
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4551db
push dword [esp + 0x58]
push 0x6c
jmp 0x455294
push dword [esp + 0x58]
push 0x6e
mov ecx, dword [esp + 0x30]
call fcn.00473d0b
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4551db
mov eax, dword [edi]
test eax, eax
je case.0x4103d7.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [edi]
call fcn.0042011d
add esp, 8
jmp case.0x4103d7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4103d7.6
push ecx
call fcn.0041f07f
jmp case.0x4103d7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4103d7.6
push ecx
call fcn.0041e1c3
jmp case.0x4103d7.6
mov eax, dword [edi]
push dword [eax + 4]
call fcn.00420164
add esp, 4
push 8
push dword [edi]
call fcn.0042011d
add esp, 8
jmp case.0x4103d7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4103d7.6
push ecx
call fcn.004603e0
jmp case.0x4103d7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4103d7.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4103d7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4103d7.6
push ecx
call fcn.00471556
jmp case.0x4103d7.6