Function at 0x410540
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 + 0x18], ecx
push ebx
push esi
mov ecx, dword [eax]
mov eax, dword [0x4d2580]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x8c], ecx
cmp eax, dword [ecx + 4]
jg 0x41173a
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 + 0x20], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x34], esi
mov word [esp + 0x38], 1
call fcn.0041fd5b
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 + 0x70], 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.0x411415.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.0x411415.4
movsx eax, dx
cmp eax, 0x33
je 0x4106c0
cmp eax, 0x4f
je case.0x411415.4
cmp eax, 5
je 0x410ad5
cmp eax, 0x58
ja case.0x411415.4
movzx eax, byte [eax + 0x4118e4]
jmp dword [eax*4 + 0x411878]
mov eax, dword [esi]
cmp eax, 4
jl 0x411404
cmp eax, 0x27
jge 0x411404
mov ebx, 0x14
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x20]
test cl, cl
jne 0x410cb3
mov eax, edx
imul eax, dword [eax], 0x15
movzx eax, byte [eax + ebx + 0x4b1860]
cmp eax, 3
jne 0x410a00
cmp dword [esp + 0x2c], 1
jne 0x4557e6
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
test eax, eax
jne 0x410eb9
test edx, edx
je 0x4106b5
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0041fd4d
add esp, 8
mov edx, esi
test esi, esi
jne 0x4106a1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x410e62
cmp ebx, 0x4d02a0
je 0x410715
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x411393
mov esi, dword [ebx + 8]
test esi, esi
jne 0x4113a5
cmp eax, 5
jge 0x455326
push 0x4d02a0
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.004119e0
mov eax, dword [esp + 0x10]
inc edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], edi
cmp edi, 1
jne 0x410ea2
mov dword [esp + 0x88], ebx
cmp dword [0x4d2380], 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 + 0x6c], ebx
je 0x41142e
xor al, al
test al, al
jne 0x410b72
cmp byte [0x4d2389], al
jne 0x4554d2
mov esi, dword [0x4d2384]
cmp dword [esi], 0
je 0x410b72
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d2540]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x4554df
mov dword [0x4d2560], 0
mov dword [0x4d255c], 0
mov dword [esp + 0x68], 0x4d2544
mov dword [esp + 0x64], 0x4d2544
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 0x455522
test edx, edx
je 0x45552a
mov edi, dword [eax]
mov ebx, dword [ebx]
cmp ecx, edx
jb 0x410a71
mov edx, ecx
test edx, edx
je 0x410815
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 0x410819
add ebx, 2
add edi, 2
sub edx, 1
jne 0x4107f2
xor eax, eax
jmp 0x410828
mov eax, dword [esp + 0x40]
cmp word [esp + 0x44], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x4108cc
jle 0x410943
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x410948
mov edi, dword [edx + 4]
cmp edi, ecx
ja 0x410f05
mov eax, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
test edi, edi
je 0x4108ad
jmp 0x410870
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 0x410aa6
mov eax, dword [esp + 0x44]
add ebx, 2
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
jne 0x410870
mov ecx, dword [esp + 0x48]
cmp edi, ecx
jb 0x410ab5
mov edx, dword [esi]
mov ecx, dword [esp + 0x64]
mov dword [ecx + 0x1c], edx
mov ebx, dword [esi]
mov dword [esp + 0x64], ebx
mov eax, dword [ebx + 0x1c]
jmp 0x4109f5
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x410948
mov eax, dword [edx + 4]
cmp ecx, eax
ja 0x410f49
mov edi, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x4109db
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 0x4109c3
cmp word [esp + 0x74], ax
jae 0x4109e3
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 0x410948
jmp 0x4109e5
mov byte [esp + 0x3f], 1
cmp byte [esp + 0x3f], 0
mov eax, dword [esi]
mov ecx, dword [esp + 0x64]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d2560]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d255c]
mov dword [ecx + 0x1c], eax
je 0x410b72
mov eax, dword [esi]
test eax, eax
je 0x410b72
mov eax, dword [eax + 0x14]
test eax, eax
je 0x410b72
push dword [esp + 0x88]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
inc dword [edi]
push edi
push esi
call fcn.00411ae0
test eax, eax
js 0x4556e0
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
jmp 0x4105f4
add ebx, 2
add edi, 2
sub dword [esp + 0x44], 1
jne 0x410900
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jb 0x410927
mov edx, dword [esi]
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x18], edx
mov ebx, dword [esi]
mov dword [esp + 0x68], ebx
mov eax, dword [ebx + 0x18]
mov ebx, dword [esp + 0x6c]
mov dword [esi], eax
jmp 0x4107c0
cmp eax, 6
ja case.0x410a09.3
jmp dword [eax*4 + 0x411940]
test cl, cl
jne 0x410f7a
push 8
call fcn.0041fd5b
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 0x411488
cmp ebx, 8
je 0x411488
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x38], eax
mov esi, dword [ebp + 8]
jmp 0x4109bb
test edx, edx
je 0x410815
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 0x41137f
cmp word [esp + 0x44], ax
jmp 0x410822
mov eax, dword [esp + 0x5c]
cmp word [esp + 0x78], ax
jae 0x4108b5
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 0x410948
jmp 0x4108b7
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x410f8b
cmp ebx, 0x4d02a0
je 0x410b2a
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x410f0c
mov esi, dword [ebx + 8]
test esi, esi
jne 0x410f1e
cmp eax, 5
jge 0x45511d
push 0x4d02a0
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.004119e0
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0xc]
inc edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], 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 0x410fcb
mov edi, ebx
mov esi, dword [esi]
mov ecx, edi
call fcn.0040e8a0
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 0x4105f4
mov ebx, dword [0x4d2370]
test ebx, ebx
je 0x4556b4
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d2540]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x455537
mov dword [0x4d2560], 0
mov dword [0x4d255c], 0
mov dword [esp + 0x60], 0x4d2544
mov dword [esp + 0x64], 0x4d2544
mov esi, dword [esp + 0x6c]
mov edi, dword [ebx + 4]
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
test eax, eax
je 0x45557c
test edi, edi
je 0x455584
mov edx, dword [ebx]
mov esi, dword [esi]
cmp eax, edi
jb 0x410c1b
mov edi, eax
test edi, edi
je 0x410c17
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 0x410da2
add esi, 2
add edx, 2
sub edi, 1
jne 0x410bf0
xor eax, eax
jmp 0x410c47
test edi, edi
je 0x410c17
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 0x410f54
cmp word [esp + 0x5c], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x410db0
jg 0x410cbb
mov byte [esp + 0x3f], 1
cmp byte [esp + 0x3f], 0
mov ecx, dword [esp + 0x64]
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x4d2370]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d2370]
mov eax, dword [0x4d2560]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d2370]
mov eax, dword [0x4d255c]
mov dword [ecx + 0x1c], eax
je 0x4556b4
mov eax, dword [0x4d2370]
test eax, eax
je 0x4556b4
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x410994
jmp 0x4556b4
mov eax, dword [edx + 4]
jmp 0x410668
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x6c]
lea ecx, [ebx + 0x1c]
mov dword [esp + 0x74], ecx
mov ecx, dword [ecx]
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x410c56
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], edx
cmp edx, eax
jbe 0x410ce5
mov edx, eax
mov dword [esp + 0x68], eax
cmp dword [esp + 0x68], 0
mov edi, edx
mov edx, dword [esi]
mov esi, dword [ecx]
jbe 0x410d1d
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 0x410d25
add esi, 2
add edx, 2
sub edi, 1
jne 0x410cf2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x68], eax
jb 0x410d34
jmp 0x410d57
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x410d57
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 [0x4d2370]
mov dword [ebx + 0x18], eax
mov dword [0x4d2370], ebx
cmp dword [ebx + 0x1c], 0
je 0x410c56
mov ecx, dword [esp + 0x64]
mov dword [ecx + 0x1c], ebx
mov ecx, dword [0x4d2370]
mov dword [esp + 0x64], ecx
mov ebx, dword [ecx + 0x1c]
mov dword [0x4d2370], ebx
jmp 0x410bc1
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411fa0
test eax, eax
js 0x4556e6
mov al, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], ecx
jmp 0x410656
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jmp 0x410c41
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 0x18]
lea ecx, [ebx + 0x18]
mov dword [esp + 0x44], ecx
test edx, edx
je 0x410c56
mov esi, dword [edx + 4]
cmp eax, esi
ja 0x411563
mov edi, dword [esp + 0x6c]
mov esi, dword [edx]
mov dword [esp + 0x40], eax
mov edi, dword [edi]
test eax, eax
je 0x410e0e
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 0x410e15
add edi, 2
add esi, 2
sub dword [esp + 0x40], 1
jne 0x410de1
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
cmp eax, dword [edx + 4]
jb 0x410e24
jmp 0x410e43
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x410e43
mov ecx, dword [esp + 0x44]
mov ebx, edx
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [0x4d2370]
mov dword [ebx + 0x1c], eax
mov dword [0x4d2370], ebx
cmp dword [ebx + 0x18], 0
je 0x410c56
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], ebx
mov ecx, dword [0x4d2370]
mov dword [esp + 0x60], ecx
mov ebx, dword [ecx + 0x18]
mov dword [0x4d2370], ebx
jmp 0x410bc1
cmp byte [esp + 0x35], 0
jne 0x4111b1
push 0x18
call fcn.0041fd5b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d02a0
mov dword [esi + 8], 0
call fcn.004119e0
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], eax
jmp 0x410719
cmp byte [esp + 0x35], 0
jne 0x4554ca
mov dword [esp + 0x88], eax
jmp 0x410732
mov edi, dword [esp + 0x10]
lea ecx, [ecx]
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0x10]
test ebx, ebx
jne 0x41158e
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x41169f
push 0x18
push edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.0041fd4d
add esp, 8
mov edi, esi
test esi, esi
jne 0x410ec0
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x41069d
mov edi, ecx
jmp 0x410858
cmp dword [0x4d02ac], 4
jne 0x410afd
jmp 0x4550e6
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x455101
push 0x10
push esi
call fcn.0041fd4d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x410b08
mov ecx, eax
mov dword [esp + 0x48], eax
jmp 0x4108ea
add esi, 2
add edx, 2
sub edi, 1
jne 0x410c20
jmp 0x410c17
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xd
mov dword [esi], eax
jmp 0x410652
xor al, al
mov dword [edx], ebx
mov byte [esp + 0x1b], al
mov byte [esp + 0x55], al
jmp 0x410a33
cmp byte [esp + 0x35], 0
jne 0x41131a
push 0x18
call fcn.0041fd5b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d02a0
mov dword [esi + 8], 0
call fcn.004119e0
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
jmp 0x410b2e
cmp byte [esp + 0x35], 0
jne 0x4552e7
mov edi, edx
jmp 0x410b50
test cl, cl
je 0x411204
mov eax, dword [edx + 4]
cmp dword [eax], 0x12
je 0x41106e
test cl, cl
jne 0x411312
mov eax, edx
cmp dword [eax], 0x14
je 0x455783
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411fa0
test eax, eax
js 0x4556e6
mov edx, dword [esp + 0x50]
mov cl, byte [esp + 0x55]
mov dword [esp + 0x20], edx
jmp case.0x410a09.2
test ecx, ecx
je 0x41104a
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
mov edx, eax
cmp ax, 0x48
je 0x454cf9
cmp dx, 0x4f
je 0x454cf9
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x12
mov dword [esi], eax
jmp 0x410652
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x13
mov dword [esi], eax
jmp 0x410652
test cl, cl
je 0x41108a
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0041fd4d
mov edx, esi
add esp, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], edx
cmp byte [esp + 0x54], 0
je 0x455591
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 0x410a3c
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 1
mov dword [esi], eax
jmp 0x410652
mov esi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test esi, esi
je 0x4115b6
cmp byte [esp + 0x35], 0
jne 0x41162f
push 0x18
call fcn.0041fd5b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d02a0
mov dword [esi + 8], 0
call fcn.004119e0
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 8]
inc esi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], esi
mov edx, dword [eax + 4]
mov ecx, dword [edi]
mov eax, dword [edx + ecx*4 + 4]
cmp word [eax + 8], 0x47
jne 0x454b2c
cmp esi, 1
je 0x4115c7
cmp byte [esp + 0x35], 0
mov eax, dword [esp + 0x10]
jne 0x454b48
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x24]
push eax
push edi
push esi
push 0
call fcn.00412c10
test eax, eax
js 0x4556e0
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xfc], 1
jne 0x4109bb
jmp 0x4556e0
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x4113e2
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0xb
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410656
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
xor ebx, ebx
mov dword [esi], eax
jmp 0x410652
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d02a0
je 0x4111fa
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x4117ea
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4117fc
cmp eax, 5
jge 0x4553f2
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d02a0
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.004119e0
mov byte [esp + 0x35], 0
jmp 0x410715
mov eax, edx
jmp 0x410feb
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x411435
cmp ebx, 0x4d02a0
je 0x411244
cmp dword [ebx + 0xc], 4
je 0x411865
mov ecx, ebx
call fcn.0040e8a0
push 0x4d02a0
mov ecx, ebx
call fcn.004119e0
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
inc edi
mov eax, dword [ebp + 8]
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], edi
mov ecx, dword [esi]
mov eax, dword [eax + 4]
mov eax, dword [eax + ecx*4]
cmp edi, 1
jne 0x411476
mov esi, ebx
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, 4
je 0x4549c7
test ecx, ecx
jne 0x4549da
cmp eax, 5
jge 0x4549ef
push 0x10
mov dword [esi], 0
mov dword [esi + 0xc], 4
call fcn.0041fd5b
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 + 0x24]
inc dword [edi]
cmp byte [edx + 0x102], 0
jne 0x454aae
cmp byte [edx + 0x103], 0
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
je 0x4105f4
jmp 0x454ac7
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x41156e
mov dword [esp + 0x14], 0xc
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410656
mov eax, dword [edx + 4]
jmp 0x410ffa
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d02a0
je 0x411363
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x4551ce
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x4551f6
cmp eax, 5
jge 0x45520f
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d02a0
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.004119e0
mov byte [esp + 0x35], 0
jmp 0x410b2a
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xe
mov dword [esi], eax
jmp 0x410652
add ebx, 2
add edi, 2
sub edx, 1
jne 0x410a80
jmp 0x410815
cmp dword [0x4d02ac], 4
jne 0x4106e8
jmp 0x4552ef
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x45530a
push 0x10
push esi
call fcn.0041fd4d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x4106f3
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 9
mov dword [esi], eax
jmp 0x410652
cmp eax, 0x13
je 0x411189
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0x11
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410656
dec eax
cmp eax, 0x29
ja case.0x411415.4
movzx eax, byte [eax + 0x41197c]
jmp dword [eax*4 + 0x41195c]
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 7
mov dword [esi], eax
jmp 0x410652
mov al, 1
jmp 0x410755
cmp byte [esp + 0x35], 0
je 0x4115e0
mov esi, dword [esp + 0x10]
cmp esi, 0x4d02a0
je 0x41146c
cmp dword [0x4d02ac], 4
je 0x4117db
mov ecx, esi
call fcn.0040e8a0
push 0x4d02a0
mov ecx, esi
call fcn.004119e0
mov byte [esp + 0x35], 0
jmp 0x411244
cmp byte [esp + 0x35], 0
jne 0x4549bf
mov esi, edx
jmp 0x41126a
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x38], esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ebx
test esi, esi
je 0x4555b9
cmp esi, 1
jne 0x4555c1
mov eax, ebx
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0xec], 0
call fcn.004119e0
lea ecx, [esp + 0xe0]
call fcn.004039e5
mov ecx, dword [esp + 0x14]
test al, al
jne 0x411712
cmp ecx, 7
jne 0x41154c
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push eax
call fcn.0041b07d
test eax, eax
js 0x4557b7
cmp dword [esp + 0x14], 8
je 0x4555d4
cmp esi, 1
jne 0x4555ee
mov esi, ebx
mov ecx, esi
call fcn.0040e8a0
mov byte [esi], 0
cmp byte [esp + 0x1b], 0
mov dword [esi + 0xc], 9
jne 0x45560a
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x54], 0
je 0x45562b
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.0040e8a0
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x4109bb
mov eax, esi
mov dword [esp + 0x48], esi
jmp 0x410dd1
cmp eax, 0x13
je 0x4112f9
jmp 0x454c5f
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 5
mov dword [esi], eax
jmp 0x410652
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x411683
push 0x10
push ebx
call fcn.0041fd4d
add esp, 8
mov dword [edi + 8], 0
jmp 0x410ece
push 0x4d02a0
mov ecx, ebx
call fcn.0040c5e7
jmp 0x411112
mov eax, ebx
jmp 0x41114d
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 2
mov dword [esi], eax
jmp 0x410652
push 0x18
call fcn.0041fd5b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d02a0
mov dword [esi + 8], 0
call fcn.004119e0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x411728
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
jmp 0x411248
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 4
mov dword [esi], eax
jmp 0x410652
mov ecx, dword [esp + 0x10]
push 0x4d02a0
call fcn.0040c5e7
mov byte [esp + 0x35], 0
jmp 0x411112
push 0x4d02a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d62d
lea ecx, [esp + 0x28]
call fcn.0041d691
mov esi, eax
mov ecx, esi
call fcn.0040e8a0
mov dword [esi + 0xc], 9
mov byte [esi], 0
mov edi, dword [ebp + 0xc]
inc dword [edi]
jmp 0x410a51
push dword [ebx]
call fcn.0041fd94
add esp, 4
push 4
push dword [ebx + 0xc]
call fcn.0041fd4d
add esp, 8
jmp 0x41159f
sub eax, 5
cmp eax, 0xa
ja case.0x4116ab.6
jmp dword [eax*4 + 0x4119a8]
push 0x4d02a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d62d
lea ecx, [esp + 0x28]
call fcn.0041d691
mov esi, eax
mov ecx, esi
call fcn.0040e8a0
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xc], 9
mov byte [esi], 1
inc dword [edi]
jmp 0x410a51
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 3
mov dword [esi], eax
jmp 0x410652
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 8
mov dword [esi], eax
jmp 0x410652
cmp ecx, 8
je 0x4114e8
test al, al
jne 0x41154c
jmp 0x4114e3
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
jmp 0x411248
push 0x4d2580
call fcn.004201c2
add esp, 4
cmp dword [0x4d2580], 0xffffffff
jne 0x410576
push 0x44241b
call fcn.00420023
add esp, 4
push 0x4d2580
call fcn.00420178
add esp, 4
jmp 0x410576
push 0x4d02a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d62d
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.0041d691
mov ebx, dword [esp + 0x24]
mov ecx, ebx
push eax
push dword [edx]
call fcn.0041d70e
test eax, eax
js 0x455679
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], ebx
jmp 0x4105f4
cmp dword [esi + 0xc], 4
jne 0x411459
jmp 0x4549a4
cmp dword [0x4d02ac], 4
jne 0x4111c9
jmp 0x4553d7
push ecx
call fcn.0041d962
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x4111d4
push 0x4d02a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d62d
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 + 0x28]
fld qword [eax]
fstp qword [esp + 0x78]
call fcn.0041d691
mov esi, eax
mov ecx, esi
call fcn.0040e8a0
fld qword [esp + 0x78]
inc dword [edi]
fstp qword [esi]
mov dword [esi + 0xc], 3
jmp 0x410a51
cmp dword [0x4d02ac], 4
jne 0x411231
jmp 0x454989
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d02a8]
cmp ecx, eax
je 0x411244
push eax
call fcn.0040c1c3
jmp 0x411244
mov ecx, dword [esi + 8]
mov eax, dword [0x4d02a8]
cmp ecx, eax
je 0x41146c
push eax
call fcn.0040c1c3
jmp 0x41146c
mov esi, dword [edx + 0x10]
jmp 0x41126a
cmp ecx, edi
je 0x4112be
push edi
call fcn.0040c1c3
jmp 0x4112be
push ecx
call fcn.0041d962
mov eax, dword [esi + 0xc]
mov dword [esi + 8], 0
jmp 0x411283
sub eax, 5
cmp eax, 0xa
ja case.0x4549fb.6
jmp dword [eax*4 + 0x4558a9]
mov eax, dword [esi]
test eax, eax
je case.0x4549fb.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [esi]
call fcn.0041fd4d
add esp, 8
jmp case.0x4549fb.6
mov ebx, dword [esi]
test ebx, ebx
je 0x454aa5
lea ecx, [ebx + 8]
call fcn.0040b1ff
push 0x18
jmp 0x454a9c
mov ebx, dword [esi]
test ebx, ebx
je 0x454aa5
mov ecx, ebx
call fcn.0041d593
push 4
jmp 0x454a9c
mov eax, dword [esi]
push dword [eax + 4]
call fcn.0041fd94
add esp, 4
push 8
push dword [esi]
call fcn.0041fd4d
add esp, 8
jmp case.0x4549fb.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x4549fb.6
push ecx
call fcn.0045fc42
jmp case.0x4549fb.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x4549fb.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4549fb.6
mov ebx, dword [esi]
test ebx, ebx
je 0x454aa5
mov ecx, ebx
call fcn.0040b1ff
push 0x14
push ebx
call fcn.0041fd4d
add esp, 8
mov ebx, dword [esp + 0x1c]
jmp case.0x4549fb.6
lea ecx, [esp + 0x28]
call fcn.0041d691
mov ecx, eax
call fcn.00487559
mov edx, dword [esp + 0x24]
jmp 0x4112d4
lea ecx, [esp + 0x28]
call fcn.0041d691
push eax
mov ecx, edx
call fcn.00487698
mov eax, dword [ebp + 0x14]
jmp 0x4105f4
push 0x4d02a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d62d
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 + 0x28]
mov edi, dword [eax]
mov ebx, dword [eax + 4]
call fcn.0041d691
mov esi, eax
mov ecx, esi
call fcn.0040e8a0
mov dword [esi + 0xc], 2
mov dword [esi], edi
mov dword [esi + 4], ebx
jmp 0x411679
mov eax, dword [edx + ecx*4]
lea ecx, [esp + 0x28]
push dword [eax]
call fcn.0041d691
mov ecx, eax
call fcn.00471073
inc dword [edi]
jmp 0x410a69
mov eax, dword [eax + 0x10]
jmp 0x41114d
push 0x4d02a0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d62d
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 0x454c0c
mov eax, dword [edx + ecx*4]
mov ebx, dword [esp + 0x24]
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.004025c1
test eax, eax
je 0x45564a
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d691
mov ecx, eax
call fcn.004719dd
inc dword [edi]
lea ecx, [esp + 0xa0]
call fcn.0040b1ff
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ebx
jmp 0x4109bb
lea eax, [esp + 0x87]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d691
mov ebx, dword [esp + 0x28]
mov ecx, ebx
push eax
push edi
push esi
push 0
call fcn.0040d840
test eax, eax
js 0x455693
cmp dword [ebx + 0xfc], 1
je 0x455693
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ebx
jmp 0x4109bb
mov dword [esp + 0x14], 0x10
jmp 0x411301
cmp dword [esp + 0x38], 0
mov dword [esp + 0x14], 0x16
sete al
test al, al
jne 0x4556ab
lea eax, [esp + 0xb0]
mov dword [esp + 0xb0], 0
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 1
call fcn.0041d691
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
push edi
push esi
call fcn.00411ae0
test eax, eax
js 0x45569d
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d691
mov ecx, eax
call fcn.0040c5e7
lea ecx, [esp + 0xb0]
call fcn.0040e8a0
jmp 0x4109bb
cmp dword [esp + 0x38], 0
sete al
test al, al
jne 0x4556ab
lea eax, [esp + 0xc0]
mov dword [esp + 0xc0], 0
push eax
lea ecx, [esp + 0x2c]
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 1
call fcn.0041d691
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
push edi
push esi
call fcn.00411ae0
test eax, eax
js 0x4556d4
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d691
mov ecx, eax
call fcn.0040c5e7
lea ecx, [esp + 0xc0]
call fcn.0040e8a0
jmp 0x4109bb
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 6
mov dword [esi], eax
jmp 0x410652
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xf
mov dword [esi], eax
jmp 0x410652
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x454db3
mov eax, dword [ecx + 4]
jmp 0x454db5
mov eax, ecx
cmp dword [eax], 0x14
je 0x454df3
test dl, dl
je 0x454dc3
mov eax, dword [ecx + 4]
jmp 0x454dc5
mov eax, ecx
cmp dword [eax], 0x12
je 0x454df3
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411fa0
test eax, eax
js 0x4556e6
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], dl
mov dword [esp + 0x20], ecx
jmp 0x454daa
cmp dword [esp + 0x2c], 0
sete al
test al, al
jne 0x455711
lea ecx, [esp + 0x28]
call fcn.0041d691
mov ecx, eax
call fcn.004039e5
lea ecx, [esp + 0x28]
mov bl, al
call fcn.0041b3a3
mov edi, dword [ebp + 0xc]
mov edx, dword [edi]
inc edx
mov dword [edi], edx
test bl, bl
jne 0x454e65
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 0x454e45
inc ecx
jmp 0x454e5e
cmp ax, 0x58
jne 0x454e4e
dec ecx
jmp 0x454e5e
cmp ax, 0x7f
je 0x454e65
cmp ax, 0x40
jne 0x454e5e
test ecx, ecx
je 0x454e65
inc edx
mov dword [edi], edx
test ecx, ecx
jne 0x454e35
mov dword [esp + 0x14], 0x12
jmp 0x410a51
cmp dword [esp + 0x38], 0
sete al
test al, al
jne 0x4556ab
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 0x454ea9
inc ecx
jmp 0x454ec5
cmp ax, 0x48
jne 0x454eb2
dec ecx
jmp 0x454ec5
mov esi, ebx
cmp ax, 0x7f
je 0x454ed3
cmp ax, 0x40
jne 0x454ec5
cmp ecx, 1
je 0x454ed3
mov eax, dword [ebp + 0xc]
inc edx
mov ebx, edx
mov esi, ebx
mov dword [eax], edx
test ecx, ecx
jne 0x454e99
mov eax, dword [edi + esi*4 - 4]
mov ebx, dword [esp + 0x1c]
mov edi, dword [ebp + 0xc]
cmp word [eax + 8], 0x48
mov eax, dword [ebp + 0x14]
jne 0x410b6a
test ecx, ecx
jne 0x410b6a
lea eax, [esi - 1]
mov dword [edi], eax
jmp 0x410a69
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xa
mov dword [esi], eax
jmp 0x410652
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push str.Default
call fcn.0040b606
push 0xffffffffffffffff
push 0x29
jmp 0x454f48
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push 0x49d0d0
call fcn.0040b606
push 0
push 0x2a
lea ecx, [esp + 0x108]
call fcn.00402032
push 0x4d02a0
lea ecx, [esp + 0x2c]
call fcn.0041d62d
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d691
mov ecx, eax
call fcn.00401fd5
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0xf8]
inc dword [edi]
call fcn.0040b1ff
jmp 0x410a51
mov dword [esp + 0x90], 0
mov bl, 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 1
test ecx, ecx
je 0x454fe3
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
cmp ax, 0x48
je 0x454fcb
cmp ax, 0x4f
jne 0x454fe3
lea ecx, [esp + 0x28]
call fcn.0041d691
push eax
lea ecx, [esp + 0x94]
call fcn.0040c5e7
xor bl, bl
lea ecx, [esp + 0x90]
call fcn.00485520
test al, al
jne 0x455041
test bl, bl
je 0x455729
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x170], 0
je 0x455027
cmp byte [ecx + 0x179], 0
mov eax, dword [ecx + 0x174]
je 0x45501a
mov eax, dword [eax + 0x10]
push eax
lea ecx, [esp + 0x94]
call fcn.0040c5e7
lea ecx, [esp + 0x90]
call fcn.00485520
test al, al
jne 0x455041
mov edx, 0xa7
jmp 0x45572e
mov edi, dword [ebp + 0xc]
lea eax, [esp + 0xd0]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x24]
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.00487aa5
test eax, eax
js 0x45574e
mov dword [esp + 0x14], 0x16
test bl, bl
jne 0x4550a0
lea ecx, [esp + 0x28]
call fcn.0041b3a3
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d62d
lea ecx, [esp + 0xd0]
call fcn.0040e8a0
lea ecx, [esp + 0x90]
call fcn.0040e8a0
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ebx
jmp 0x4109bb
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d02a8]
cmp ecx, eax
je 0x410b2a
push eax
call fcn.0040c1c3
jmp 0x410b2a
push dword [esi]
call fcn.0041fd94
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0041fd4d
add esp, 8
jmp 0x410f2f
sub eax, 5
cmp eax, 0xa
ja case.0x455129.6
jmp dword [eax*4 + 0x4558d5]
mov eax, dword [ebx]
test eax, eax
je case.0x455129.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [ebx]
jmp 0x4551c1
mov esi, dword [ebx]
test esi, esi
je case.0x455129.6
lea ecx, [esi + 8]
call fcn.0040b1ff
push 0x18
jmp 0x4551c0
mov esi, dword [ebx]
test esi, esi
je case.0x455129.6
mov ecx, esi
call fcn.0041d593
push 4
jmp 0x4551c0
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.0041fd94
add esp, 4
push 8
push dword [ebx]
jmp 0x4551c1
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455129.6
push ecx
call fcn.0045fc42
jmp case.0x455129.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455129.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455129.6
mov esi, dword [ebx]
test esi, esi
je case.0x455129.6
mov ecx, esi
call fcn.0040b1ff
push 0x14
push esi
call fcn.0041fd4d
add esp, 8
jmp case.0x455129.6
cmp dword [0x4d02ac], 4
jne 0x411332
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d02a8]
cmp ecx, eax
je 0x411363
push eax
call fcn.0040c1c3
jmp 0x411363
push ecx
call fcn.0041d962
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x41133d
sub eax, 5
cmp eax, 0xa
ja case.0x45521b.6
jmp dword [eax*4 + 0x455901]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x45521b.6
push eax
call dword [esp + 0x74]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x4552da
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x45521b.6
lea ecx, [esi + 8]
call fcn.0040b1ff
push 0x18
jmp 0x4552d9
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x45521b.6
mov ecx, esi
call fcn.0041d593
push 4
jmp 0x4552d9
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.0041fd94
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x4552da
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x45521b.6
push ecx
call fcn.0045fc42
jmp case.0x45521b.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x45521b.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x45521b.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x45521b.6
mov ecx, esi
call fcn.0040b1ff
push 0x14
push esi
call fcn.0041fd4d
add esp, 8
jmp case.0x45521b.6
mov edi, dword [edx + 0x10]
jmp 0x410b50
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d02a8]
cmp ecx, eax
je 0x410715
push eax
call fcn.0040c1c3
jmp 0x410715
push dword [esi]
call fcn.0041fd94
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0041fd4d
add esp, 8
jmp 0x4113b6
sub eax, 5
cmp eax, 0xa
ja case.0x455332.6
jmp dword [eax*4 + 0x45592d]
mov eax, dword [ebx]
test eax, eax
je case.0x455332.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [ebx]
jmp 0x4553ca
mov esi, dword [ebx]
test esi, esi
je case.0x455332.6
lea ecx, [esi + 8]
call fcn.0040b1ff
push 0x18
jmp 0x4553c9
mov esi, dword [ebx]
test esi, esi
je case.0x455332.6
mov ecx, esi
call fcn.0041d593
push 4
jmp 0x4553c9
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.0041fd94
add esp, 4
push 8
push dword [ebx]
jmp 0x4553ca
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455332.6
push ecx
call fcn.0045fc42
jmp case.0x455332.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455332.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455332.6
mov esi, dword [ebx]
test esi, esi
je case.0x455332.6
mov ecx, esi
call fcn.0040b1ff
push 0x14
push esi
call fcn.0041fd4d
add esp, 8
jmp case.0x455332.6
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d02a8]
cmp ecx, eax
je 0x4111fa
push eax
call fcn.0040c1c3
jmp 0x4111fa
sub eax, 5
cmp eax, 0xa
ja case.0x4553fe.6
jmp dword [eax*4 + 0x455959]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x4553fe.6
push eax
call dword [esp + 0x74]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x4554bd
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x4553fe.6
lea ecx, [esi + 8]
call fcn.0040b1ff
push 0x18
jmp 0x4554bc
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x4553fe.6
mov ecx, esi
call fcn.0041d593
push 4
jmp 0x4554bc
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.0041fd94
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x4554bd
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x4553fe.6
push ecx
call fcn.0045fc42
jmp case.0x4553fe.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x4553fe.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4553fe.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x4553fe.6
mov ecx, esi
call fcn.0040b1ff
push 0x14
push esi
call fcn.0041fd4d
add esp, 8
jmp case.0x4553fe.6
mov eax, dword [eax + 0x10]
jmp 0x410ead
mov eax, dword [0x4d2384]
mov esi, dword [eax + 8]
jmp 0x41076f
push 0x4d2540
call fcn.004201c2
add esp, 4
cmp dword [0x4d2540], 0xffffffff
jne 0x410795
mov ecx, 0x4d2544
call fcn.0040c25d
push 0x4423e9
call fcn.00420023
add esp, 4
push 0x4d2540
call fcn.00420178
add esp, 4
jmp 0x410795
test edx, edx
jne 0x4108d8
test ecx, ecx
jne 0x410842
jmp 0x4107e0
push 0x4d2540
call fcn.004201c2
add esp, 4
cmp dword [0x4d2540], 0xffffffff
jne 0x455571
mov ecx, 0x4d2544
call fcn.0040c25d
push 0x4423e9
call fcn.00420023
add esp, 4
push 0x4d2540
call fcn.00420178
add esp, 4
mov ebx, dword [0x4d2370]
jmp 0x410b9d
test edi, edi
jne 0x410db4
test eax, eax
jne 0x410cc3
jmp 0x410bdf
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0041fd4d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x411097
mov edi, dword [esp + 0x4c]
jmp 0x410a3c
mov edi, dword [ebp + 0xc]
jmp 0x410a69
cmp byte [esp + 0x35], 0
je 0x4114b3
mov eax, dword [eax + 0x10]
jmp 0x4114b3
lea ecx, [esp + 0x28]
call fcn.0041d691
mov esi, eax
mov ecx, esi
call fcn.0040e8a0
mov byte [esi], 1
jmp 0x41151c
cmp byte [esp + 0x35], 0
je 0x455601
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x10]
jmp 0x411512
mov esi, dword [esp + 0x10]
jmp 0x411512
mov ecx, dword [esp + 0x20]
push 8
push ecx
mov esi, dword [ecx + 4]
call fcn.0041fd4d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
jmp 0x411532
mov esi, dword [eax + 4]
push 8
push eax
call fcn.0041fd4d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x41153f
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.004734ba
lea ecx, [esp + 0xa0]
call fcn.0040b1ff
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x4556e0
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.004734ba
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x4556e0
lea ecx, [esp + 0xb0]
call fcn.0040e8a0
jmp 0x4556e0
movsx eax, word [esi + 0xa]
push eax
push 0x6e
jmp 0x4556c9
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 + 0x2c]
call fcn.004734ba
jmp 0x4556e0
lea ecx, [esp + 0xc0]
call fcn.0040e8a0
mov edx, dword [esp + 0x20]
jmp 0x455705
push dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
push 0x6e
call fcn.004734ba
mov edx, dword [esp + 0x50]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
or edi, 0xffffffff
jmp 0x410691
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 0x4557ea
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 + 0x24]
movzx eax, word [eax + 0xa]
cwde
push eax
push edx
call fcn.004734ba
jmp 0x455772
mov ecx, dword [edi]
mov eax, dword [esi + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x24]
movsx eax, word [eax + 0xa]
push eax
push 0x6e
call fcn.004734ba
lea ecx, [esp + 0xd0]
call fcn.0040e8a0
lea ecx, [esp + 0x90]
call fcn.0040e8a0
jmp 0x4556e0
push dword [esp + 0x58]
push 0x6d
jmp 0x4557ec
push dword [esp + 0x58]
push 0x6b
jmp 0x455799
push dword [esp + 0x58]
push 0x6d
mov ecx, dword [esp + 0x2c]
call fcn.004734ba
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x4556e0
push dword [esp + 0x58]
push 0x6c
jmp 0x455799
push dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
push 0x6e
call fcn.004734ba
or edi, 0xffffffff
lea ecx, [esp + 0xe0]
mov dword [esp + 0x1c], edi
call fcn.0040e8a0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
jmp 0x410695
push dword [esp + 0x58]
push 0x6e
mov ecx, dword [esp + 0x2c]
call fcn.004734ba
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x4556e0
mov eax, dword [edi]
test eax, eax
je case.0x4116ab.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [edi]
call fcn.0041fd4d
add esp, 8
jmp case.0x4116ab.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116ab.6
push ecx
call fcn.0041e44a
jmp case.0x4116ab.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116ab.6
push ecx
call fcn.0041d57b
jmp case.0x4116ab.6
mov eax, dword [edi]
push dword [eax + 4]
call fcn.0041fd94
add esp, 4
push 8
push dword [edi]
call fcn.0041fd4d
add esp, 8
jmp case.0x4116ab.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116ab.6
push ecx
call fcn.0045fc42
jmp case.0x4116ab.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116ab.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4116ab.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116ab.6
push ecx
call fcn.00470d8b
jmp case.0x4116ab.6