Function at 0x4102f0
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 [0x4d3580]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x8c], ecx
cmp eax, dword [ecx + 4]
jg 0x411576
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.0042016b
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 [0x49d470]
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.0x4111e1.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.0x4111e1.4
movsx eax, dx
cmp eax, 0x33
je 0x410470
cmp eax, 0x4f
je case.0x4111e1.4
cmp eax, 5
je 0x410885
cmp eax, 0x58
ja case.0x4111e1.4
movzx eax, byte [eax + 0x411748]
jmp dword [eax*4 + 0x4116dc]
mov eax, dword [esi]
cmp eax, 4
jl 0x4111d0
cmp eax, 0x27
jge 0x4111d0
mov ebx, 0x14
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x20]
test cl, cl
jne 0x410a63
mov eax, edx
imul eax, dword [eax], 0x15
movzx eax, byte [eax + ebx + 0x4b2810]
cmp eax, 3
jne 0x4107b0
cmp dword [esp + 0x30], 1
jne 0x4562cf
mov eax, dword [esp + 0x34]
xor edi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
test eax, eax
jne 0x410c69
test edx, edx
je 0x410465
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042015d
add esp, 8
mov edx, esi
test esi, esi
jne 0x410451
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 0x410c12
cmp ebx, 0x4d12a0
je 0x4104c5
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x41115f
mov esi, dword [ebx + 8]
test esi, esi
jne 0x411171
cmp eax, 5
jge 0x455dca
push 0x4d12a0
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00411840
mov eax, dword [esp + 0x10]
inc edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edi
cmp edi, 1
jne 0x410c52
mov dword [esp + 0x88], ebx
cmp dword [0x4d3380], 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 0x4111fa
xor al, al
test al, al
jne 0x410922
cmp byte [0x4d3389], al
jne 0x455f76
mov esi, dword [0x4d3384]
cmp dword [esi], 0
je 0x410922
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d3540]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x455f83
mov dword [0x4d3560], 0
mov dword [0x4d355c], 0
mov dword [esp + 0x6c], 0x4d3544
mov dword [esp + 0x68], 0x4d3544
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 0x455fc6
test edx, edx
je 0x455fce
mov edi, dword [eax]
mov ebx, dword [ebx]
cmp ecx, edx
jb 0x410821
mov edx, ecx
test edx, edx
je 0x4105c5
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 0x4105c9
add ebx, 2
add edi, 2
sub edx, 1
jne 0x4105a2
xor eax, eax
jmp 0x4105d8
mov eax, dword [esp + 0x40]
cmp word [esp + 0x44], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x41067c
jle 0x4106f3
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x4106f8
mov edi, dword [edx + 4]
cmp edi, ecx
ja 0x410cb5
mov eax, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
test edi, edi
je 0x41065d
jmp 0x410620
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 0x410856
mov eax, dword [esp + 0x44]
add ebx, 2
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
jne 0x410620
mov ecx, dword [esp + 0x48]
cmp edi, ecx
jb 0x410865
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 0x4107a5
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x70]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x4106f8
mov eax, dword [edx + 4]
cmp ecx, eax
ja 0x410cf9
mov edi, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x41078b
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 0x410773
cmp word [esp + 0x74], ax
jae 0x410793
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 0x4106f8
jmp 0x410795
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 [0x4d3560]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d355c]
mov dword [ecx + 0x1c], eax
je 0x410922
mov eax, dword [esi]
test eax, eax
je 0x410922
mov eax, dword [eax + 0x14]
test eax, eax
je 0x410922
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.00411940
test eax, eax
js 0x4561f8
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 0x14]
jmp 0x4103a4
add ebx, 2
add edi, 2
sub dword [esp + 0x44], 1
jne 0x4106b0
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jb 0x4106d7
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 0x410570
cmp eax, 6
ja case.0x4107b9.3
jmp dword [eax*4 + 0x4117a4]
test cl, cl
jne 0x410d2a
push 8
call fcn.0042016b
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 0x411254
cmp ebx, 8
je 0x411254
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 0x41076b
test edx, edx
je 0x4105c5
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 0x41114b
cmp word [esp + 0x44], ax
jmp 0x4105d2
mov eax, dword [esp + 0x5c]
cmp word [esp + 0x78], ax
jae 0x410665
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 0x4106f8
jmp 0x410667
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x410d3b
cmp ebx, 0x4d12a0
je 0x4108da
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x410cbc
mov esi, dword [ebx + 8]
test esi, esi
jne 0x410cce
cmp eax, 5
jge 0x455bc1
push 0x4d12a0
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00411840
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 0x410d7b
mov edi, ebx
mov esi, dword [esi]
mov ecx, edi
call fcn.0040e650
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 0x4103a4
mov ebx, dword [0x4d3370]
test ebx, ebx
je 0x4561cc
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d3540]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x455fdb
mov dword [0x4d3560], 0
mov dword [0x4d355c], 0
mov dword [esp + 0x60], 0x4d3544
mov dword [esp + 0x68], 0x4d3544
mov esi, dword [esp + 0x70]
mov edi, dword [ebx + 4]
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
test eax, eax
je 0x456020
test edi, edi
je 0x456028
mov edx, dword [ebx]
mov esi, dword [esi]
cmp eax, edi
jb 0x4109cb
mov edi, eax
test edi, edi
je 0x4109c7
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 0x410b52
add esi, 2
add edx, 2
sub edi, 1
jne 0x4109a0
xor eax, eax
jmp 0x4109f7
test edi, edi
je 0x4109c7
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 0x410d04
cmp word [esp + 0x5c], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x410b60
jg 0x410a6b
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 [0x4d3370]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d3370]
mov eax, dword [0x4d3560]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d3370]
mov eax, dword [0x4d355c]
mov dword [ecx + 0x1c], eax
je 0x4561cc
mov eax, dword [0x4d3370]
test eax, eax
je 0x4561cc
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x410744
jmp 0x4561cc
mov eax, dword [edx + 4]
jmp 0x410418
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 0x410a06
mov edx, dword [ecx + 4]
mov dword [esp + 0x6c], edx
cmp edx, eax
jbe 0x410a95
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 0x410acd
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 0x410ad5
add esi, 2
add edx, 2
sub edi, 1
jne 0x410aa2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x6c], eax
jb 0x410ae4
jmp 0x410b07
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x410b07
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 [0x4d3370]
mov dword [ebx + 0x18], eax
mov dword [0x4d3370], ebx
cmp dword [ebx + 0x1c], 0
je 0x410a06
mov ecx, dword [esp + 0x68]
mov dword [ecx + 0x1c], ebx
mov ecx, dword [0x4d3370]
mov dword [esp + 0x68], ecx
mov ebx, dword [ecx + 0x1c]
mov dword [0x4d3370], ebx
jmp 0x410971
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411e00
test eax, eax
js 0x4561fe
mov al, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], ecx
jmp 0x410406
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jmp 0x4109f1
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 0x18]
lea ecx, [ebx + 0x18]
mov dword [esp + 0x44], ecx
test edx, edx
je 0x410a06
mov esi, dword [edx + 4]
cmp eax, esi
ja 0x411382
mov edi, dword [esp + 0x70]
mov esi, dword [edx]
mov dword [esp + 0x40], eax
mov edi, dword [edi]
test eax, eax
je 0x410bbe
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 0x410bc5
add edi, 2
add esi, 2
sub dword [esp + 0x40], 1
jne 0x410b91
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
cmp eax, dword [edx + 4]
jb 0x410bd4
jmp 0x410bf3
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x410bf3
mov ecx, dword [esp + 0x44]
mov ebx, edx
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [0x4d3370]
mov dword [ebx + 0x1c], eax
mov dword [0x4d3370], ebx
cmp dword [ebx + 0x18], 0
je 0x410a06
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], ebx
mov ecx, dword [0x4d3370]
mov dword [esp + 0x60], ecx
mov ebx, dword [ecx + 0x18]
mov dword [0x4d3370], ebx
jmp 0x410971
cmp byte [esp + 0x39], 0
jne 0x410f61
push 0x18
call fcn.0042016b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d12a0
mov dword [esi + 8], 0
call fcn.00411840
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x34], eax
jmp 0x4104c9
cmp byte [esp + 0x39], 0
jne 0x455f6e
mov dword [esp + 0x88], eax
jmp 0x4104e2
mov edi, dword [esp + 0x10]
lea ecx, [ecx]
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0x10]
test ebx, ebx
jne 0x4113ad
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x4114db
push 0x18
push edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.0042015d
add esp, 8
mov edi, esi
test esi, esi
jne 0x410c70
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x41044d
mov edi, ecx
jmp 0x410608
cmp dword [0x4d12ac], 4
jne 0x4108ad
jmp 0x455b8a
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x455ba5
push 0x10
push esi
call fcn.0042015d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x4108b8
mov ecx, eax
mov dword [esp + 0x48], eax
jmp 0x41069a
add esi, 2
add edx, 2
sub edi, 1
jne 0x4109d0
jmp 0x4109c7
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xd
mov dword [esi], eax
jmp 0x410402
xor al, al
mov dword [edx], ebx
mov byte [esp + 0x1b], al
mov byte [esp + 0x55], al
jmp 0x4107e3
cmp byte [esp + 0x39], 0
jne 0x4110e6
push 0x18
call fcn.0042016b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d12a0
mov dword [esi + 8], 0
call fcn.00411840
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
jmp 0x4108de
cmp byte [esp + 0x39], 0
jne 0x455d8b
mov edi, edx
jmp 0x410900
test cl, cl
je 0x410fb4
mov eax, dword [edx + 4]
cmp dword [eax], 0x12
je 0x410e1e
test cl, cl
jne 0x4110de
mov eax, edx
cmp dword [eax], 0x14
je 0x45629b
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411e00
test eax, eax
js 0x4561fe
mov edx, dword [esp + 0x50]
mov cl, byte [esp + 0x55]
mov dword [esp + 0x20], edx
jmp case.0x4107b9.2
test ecx, ecx
je 0x410dfa
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
mov edx, eax
cmp ax, 0x48
je 0x45579d
cmp dx, 0x4f
je 0x45579d
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x12
mov dword [esi], eax
jmp 0x410402
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x13
mov dword [esi], eax
jmp 0x410402
test cl, cl
je 0x410e3a
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042015d
mov edx, esi
add esp, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], edx
cmp byte [esp + 0x54], 0
je 0x456035
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 0x4107ec
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 1
mov dword [esi], eax
jmp 0x410402
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test esi, esi
je 0x4113d5
cmp byte [esp + 0x39], 0
jne 0x41146b
push 0x18
call fcn.0042016b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d12a0
mov dword [esi + 8], 0
call fcn.00411840
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 0x4555d0
cmp esi, 1
je 0x411403
cmp byte [esp + 0x39], 0
mov eax, dword [esp + 0x10]
jne 0x4555ec
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
push edi
push esi
push 0
call fcn.00412ad0
test eax, eax
js 0x4561f8
mov eax, dword [esp + 0x28]
cmp dword [eax + 0xfc], 1
jne 0x41076b
jmp 0x4561f8
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x4111ae
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0xb
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410406
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
xor ebx, ebx
mov dword [esi], eax
jmp 0x410402
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d12a0
je 0x410faa
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x411638
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x41164a
cmp eax, 5
jge 0x455e96
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d12a0
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.00411840
mov byte [esp + 0x39], 0
jmp 0x4104c5
mov eax, edx
jmp 0x410d9b
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x411201
cmp ebx, 0x4d12a0
je 0x411010
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x4116b3
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x4116c5
cmp eax, 5
jge 0x45537c
push 0x4d12a0
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00411840
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 0x411242
mov esi, ebx
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, 4
je 0x455450
test ecx, ecx
jne 0x455463
cmp eax, 5
jge 0x455478
push 0x10
mov dword [esi], 0
mov dword [esi + 0xc], 4
call fcn.0042016b
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 0x455537
cmp byte [edx + 0x103], 0
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
je 0x4103a4
jmp 0x455550
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x41138d
mov dword [esp + 0x14], 0xc
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410406
mov eax, dword [edx + 4]
jmp 0x410daa
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d12a0
je 0x41112f
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x455c72
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x455c9a
cmp eax, 5
jge 0x455cb3
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d12a0
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.00411840
mov byte [esp + 0x39], 0
jmp 0x4108da
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xe
mov dword [esi], eax
jmp 0x410402
add ebx, 2
add edi, 2
sub edx, 1
jne 0x410830
jmp 0x4105c5
cmp dword [0x4d12ac], 4
jne 0x410498
jmp 0x455d93
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x455dae
push 0x10
push esi
call fcn.0042015d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x4104a3
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 9
mov dword [esi], eax
jmp 0x410402
cmp eax, 0x13
je 0x410f39
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0x11
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410406
dec eax
cmp eax, 0x29
ja case.0x4111e1.4
movzx eax, byte [eax + 0x4117e0]
jmp dword [eax*4 + 0x4117c0]
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 7
mov dword [esi], eax
jmp 0x410402
mov al, 1
jmp 0x410505
cmp byte [esp + 0x39], 0
je 0x41141c
mov esi, dword [esp + 0x10]
cmp esi, 0x4d12a0
je 0x411238
cmp dword [0x4d12ac], 4
je 0x411617
mov ecx, esi
call fcn.0040e650
push 0x4d12a0
mov ecx, esi
call fcn.00411840
mov byte [esp + 0x39], 0
jmp 0x411010
cmp byte [esp + 0x39], 0
jne 0x455448
mov esi, edx
jmp 0x411036
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x24], ebx
test esi, esi
je 0x45605d
cmp esi, 1
mov esi, dword [esp + 0x34]
mov dword [esp + 0x10], esi
jne 0x45606d
mov eax, ebx
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0xec], 0
call fcn.00411840
lea ecx, [esp + 0xe0]
call fcn.004044d0
mov ecx, dword [esp + 0x14]
test al, al
jne 0x41154e
cmp ecx, 7
jne 0x41136b
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 0x456083
cmp ax, 0x48
je 0x456089
cmp ax, 0x7f
je 0x4560b1
test esi, esi
jne 0x4112f9
test ax, ax
je 0x411301
cmp ax, 0x40
je 0x411315
mov eax, dword [ebp + 0xc]
inc ecx
mov dword [eax], ecx
jmp 0x4112c5
mov eax, dword [edx]
cmp eax, 4
jl 0x456097
cmp eax, 0x27
jge 0x456097
cmp dword [esp + 0x14], 8
je 0x4560e8
cmp dword [esp + 0x1c], 1
mov ebx, dword [esp + 0x24]
jne 0x456106
mov esi, ebx
mov ecx, esi
call fcn.0040e650
mov byte [esi], 0
cmp byte [esp + 0x1b], 0
mov dword [esi + 0xc], 9
jne 0x456122
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x54], 0
je 0x456143
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.0040e650
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x41076b
mov eax, esi
mov dword [esp + 0x48], esi
jmp 0x410b81
cmp eax, 0x13
je 0x4110c5
jmp 0x455703
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 5
mov dword [esi], eax
jmp 0x410402
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x4114bf
push 0x10
push ebx
call fcn.0042015d
add esp, 8
mov dword [edi + 8], 0
jmp 0x410c7e
cmp ebx, 0x4d12a0
je 0x410ec2
cmp dword [ebx + 0xc], 4
je 0x411626
mov ecx, ebx
call fcn.0040e650
push 0x4d12a0
mov ecx, ebx
call fcn.00411840
jmp 0x410ec2
mov eax, ebx
jmp 0x410efd
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 2
mov dword [esi], eax
jmp 0x410402
push 0x18
call fcn.0042016b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d12a0
mov dword [esi + 8], 0
call fcn.00411840
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x411564
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
jmp 0x411014
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 4
mov dword [esi], eax
jmp 0x410402
mov ecx, dword [esp + 0x10]
push 0x4d12a0
call fcn.0040b3fe
mov byte [esp + 0x39], 0
jmp 0x410ec2
push 0x4d12a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e34f
lea ecx, [esp + 0x2c]
call fcn.0041e61b
mov esi, eax
mov ecx, esi
call fcn.0040e650
mov dword [esi + 0xc], 9
mov byte [esi], 0
mov edi, dword [ebp + 0xc]
inc dword [edi]
jmp 0x410801
push dword [ebx]
call fcn.004201a4
add esp, 4
push 4
push dword [ebx + 0xc]
call fcn.0042015d
add esp, 8
jmp 0x4113be
sub eax, 5
cmp eax, 0xa
ja case.0x4114e7.6
jmp dword [eax*4 + 0x41180c]
push 0x4d12a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e34f
lea ecx, [esp + 0x2c]
call fcn.0041e61b
mov esi, eax
mov ecx, esi
call fcn.0040e650
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xc], 9
mov byte [esi], 1
inc dword [edi]
jmp 0x410801
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 3
mov dword [esi], eax
jmp 0x410402
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 8
mov dword [esi], eax
jmp 0x410402
cmp ecx, 8
je 0x4112b8
test al, al
jne 0x41136b
jmp 0x4112af
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x34], edx
jmp 0x411014
push 0x4d3580
call fcn.004205d2
add esp, 4
cmp dword [0x4d3580], 0xffffffff
jne 0x410326
push 0x44281b
call fcn.00420433
add esp, 4
push 0x4d3580
call fcn.00420588
add esp, 4
jmp 0x410326
push 0x4d12a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e34f
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.0041e61b
mov ebx, dword [esp + 0x28]
mov ecx, ebx
push eax
push dword [edx]
call fcn.0041e3b3
test eax, eax
js 0x456191
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 0x4103a4
cmp dword [esi + 0xc], 4
jne 0x411225
jmp 0x45542d
cmp dword [0x4d12ac], 4
jne 0x4113eb
jmp 0x4555b5
cmp dword [0x4d12ac], 4
jne 0x410f79
jmp 0x455e7b
push ecx
call fcn.0041e631
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x410f84
push 0x4d12a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e34f
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.0041e61b
mov esi, eax
mov ecx, esi
call fcn.0040e650
fld qword [esp + 0x78]
inc dword [edi]
fstp qword [esi]
mov dword [esi + 0xc], 3
jmp 0x410801
cmp dword [0x4d12ac], 4
jne 0x410fe3
jmp 0x455361
push ecx
call fcn.0041e631
mov eax, dword [ebx + 0xc]
mov dword [ebx + 8], 0
jmp 0x410fee
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x411010
push eax
call fcn.0040be6d
jmp 0x411010
sub eax, 5
cmp eax, 0xa
ja case.0x455388.6
jmp dword [eax*4 + 0x456395]
mov eax, dword [ebx]
test eax, eax
je case.0x455388.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [ebx]
jmp 0x455420
mov esi, dword [ebx]
test esi, esi
je case.0x455388.6
lea ecx, [esi + 8]
call fcn.0040bd2c
push 0x18
jmp 0x45541f
mov esi, dword [ebx]
test esi, esi
je case.0x455388.6
mov ecx, esi
call fcn.0041e29c
push 4
jmp 0x45541f
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.004201a4
add esp, 4
push 8
push dword [ebx]
jmp 0x455420
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455388.6
push ecx
call fcn.004605e9
jmp case.0x455388.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455388.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455388.6
mov esi, dword [ebx]
test esi, esi
je case.0x455388.6
mov ecx, esi
call fcn.0040bd2c
push 0x14
push esi
call fcn.0042015d
add esp, 8
jmp case.0x455388.6
mov ecx, dword [esi + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x411238
push eax
call fcn.0040be6d
jmp 0x411238
mov esi, dword [edx + 0x10]
jmp 0x411036
cmp ecx, edi
je 0x41108a
push edi
call fcn.0040be6d
jmp 0x41108a
push ecx
call fcn.0041e631
mov eax, dword [esi + 0xc]
mov dword [esi + 8], 0
jmp 0x41104f
sub eax, 5
cmp eax, 0xa
ja case.0x455484.6
jmp dword [eax*4 + 0x4563c1]
mov eax, dword [esi]
test eax, eax
je case.0x455484.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [esi]
call fcn.0042015d
add esp, 8
jmp case.0x455484.6
mov ebx, dword [esi]
test ebx, ebx
je 0x45552e
lea ecx, [ebx + 8]
call fcn.0040bd2c
push 0x18
jmp 0x455525
mov ebx, dword [esi]
test ebx, ebx
je 0x45552e
mov ecx, ebx
call fcn.0041e29c
push 4
jmp 0x455525
mov eax, dword [esi]
push dword [eax + 4]
call fcn.004201a4
add esp, 4
push 8
push dword [esi]
call fcn.0042015d
add esp, 8
jmp case.0x455484.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x455484.6
push ecx
call fcn.004605e9
jmp case.0x455484.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x455484.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455484.6
mov ebx, dword [esi]
test ebx, ebx
je 0x45552e
mov ecx, ebx
call fcn.0040bd2c
push 0x14
push ebx
call fcn.0042015d
add esp, 8
mov ebx, dword [esp + 0x24]
jmp case.0x455484.6
lea ecx, [esp + 0x2c]
call fcn.0041e61b
mov ecx, eax
call 0x487f8f
mov edx, dword [esp + 0x28]
jmp 0x4110a0
lea ecx, [esp + 0x2c]
call fcn.0041e61b
push eax
mov ecx, edx
call 0x4880ce
mov eax, dword [ebp + 0x14]
jmp 0x4103a4
push 0x4d12a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e34f
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.0041e61b
mov esi, eax
mov ecx, esi
call fcn.0040e650
mov dword [esi + 0xc], 2
mov dword [esi], edi
mov dword [esi + 4], ebx
jmp 0x4114b5
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x410ec2
push eax
call fcn.0040be6d
jmp 0x410ec2
mov eax, dword [edx + ecx*4]
lea ecx, [esp + 0x2c]
push dword [eax]
call fcn.0041e61b
mov ecx, eax
call fcn.00471a29
inc dword [edi]
jmp 0x410819
mov eax, dword [eax + 0x10]
jmp 0x410efd
push 0x4d12a0
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], 0x16
call fcn.0041e34f
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 0x4556b0
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.0041a9e5
test eax, eax
je 0x456162
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e61b
mov ecx, eax
call fcn.00472393
inc dword [edi]
lea ecx, [esp + 0xa0]
call fcn.0040bd2c
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 0x41076b
lea eax, [esp + 0x87]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e61b
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
push eax
push edi
push esi
push 0
call fcn.0040d330
test eax, eax
js 0x4561ab
cmp dword [ebx + 0xfc], 1
je 0x4561ab
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 0x41076b
mov dword [esp + 0x14], 0x10
jmp 0x4110cd
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x16
sete al
test al, al
jne 0x4561c3
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.0041e61b
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.00411940
test eax, eax
js 0x4561b5
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e61b
mov ecx, eax
call fcn.0040b3fe
lea ecx, [esp + 0xb0]
call fcn.0040e650
jmp 0x41076b
cmp dword [esp + 0x1c], 0
sete al
test al, al
jne 0x4561c3
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.0041e61b
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x2c]
push eax
push edi
push esi
call fcn.00411940
test eax, eax
js 0x4561ec
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e61b
mov ecx, eax
call fcn.0040b3fe
lea ecx, [esp + 0xc0]
call fcn.0040e650
jmp 0x41076b
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 6
mov dword [esi], eax
jmp 0x410402
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xf
mov dword [esi], eax
jmp 0x410402
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x455857
mov eax, dword [ecx + 4]
jmp 0x455859
mov eax, ecx
cmp dword [eax], 0x14
je 0x455897
test dl, dl
je 0x455867
mov eax, dword [ecx + 4]
jmp 0x455869
mov eax, ecx
cmp dword [eax], 0x12
je 0x455897
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411e00
test eax, eax
js 0x4561fe
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], dl
mov dword [esp + 0x20], ecx
jmp 0x45584e
cmp dword [esp + 0x30], 0
sete al
test al, al
jne 0x456229
lea ecx, [esp + 0x2c]
call fcn.0041e61b
mov ecx, eax
call fcn.004044d0
lea ecx, [esp + 0x2c]
mov bl, al
call fcn.0041bd2d
mov edi, dword [ebp + 0xc]
mov edx, dword [edi]
inc edx
mov dword [edi], edx
test bl, bl
jne 0x455909
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 0x4558e9
inc ecx
jmp 0x455902
cmp ax, 0x58
jne 0x4558f2
dec ecx
jmp 0x455902
cmp ax, 0x7f
je 0x455909
cmp ax, 0x40
jne 0x455902
test ecx, ecx
je 0x455909
inc edx
mov dword [edi], edx
test ecx, ecx
jne 0x4558d9
mov dword [esp + 0x14], 0x12
jmp 0x410801
cmp dword [esp + 0x1c], 0
sete al
test al, al
jne 0x4561c3
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 0x45594d
inc ecx
jmp 0x455969
cmp ax, 0x48
jne 0x455956
dec ecx
jmp 0x455969
mov esi, ebx
cmp ax, 0x7f
je 0x455977
cmp ax, 0x40
jne 0x455969
cmp ecx, 1
je 0x455977
mov eax, dword [ebp + 0xc]
inc edx
mov ebx, edx
mov esi, ebx
mov dword [eax], edx
test ecx, ecx
jne 0x45593d
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 0x41091a
test ecx, ecx
jne 0x41091a
lea eax, [esi - 1]
mov dword [edi], eax
jmp 0x410819
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xa
mov dword [esi], eax
jmp 0x410402
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push 0x4c7a74
call fcn.0040b25f
push 0xffffffffffffffff
push 0x29
jmp 0x4559ec
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push 0x49dcd0
call fcn.0040b25f
push 0
push 0x2a
lea ecx, [esp + 0x108]
call fcn.0041b5a9
push 0x4d12a0
lea ecx, [esp + 0x30]
call fcn.0041e34f
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e61b
mov ecx, eax
call fcn.0041b54c
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0xf8]
inc dword [edi]
call fcn.0040bd2c
jmp 0x410801
mov dword [esp + 0x90], 0
mov bl, 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 1
test ecx, ecx
je 0x455a87
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
cmp ax, 0x48
je 0x455a6f
cmp ax, 0x4f
jne 0x455a87
lea ecx, [esp + 0x2c]
call fcn.0041e61b
push eax
lea ecx, [esp + 0x94]
call fcn.0040b3fe
xor bl, bl
lea ecx, [esp + 0x90]
call 0x485f56
test al, al
jne 0x455ae5
test bl, bl
je 0x456241
mov ecx, dword [esp + 0x28]
cmp dword [ecx + 0x170], 0
je 0x455acb
cmp byte [ecx + 0x179], 0
mov eax, dword [ecx + 0x174]
je 0x455abe
mov eax, dword [eax + 0x10]
push eax
lea ecx, [esp + 0x94]
call fcn.0040b3fe
lea ecx, [esp + 0x90]
call 0x485f56
test al, al
jne 0x455ae5
mov edx, 0xa7
jmp 0x456246
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 0x4884db
test eax, eax
js 0x456266
mov dword [esp + 0x14], 0x16
test bl, bl
jne 0x455b44
lea ecx, [esp + 0x2c]
call fcn.0041bd2d
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x30]
call fcn.0041e34f
lea ecx, [esp + 0xd0]
call fcn.0040e650
lea ecx, [esp + 0x90]
call fcn.0040e650
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 0x41076b
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x4108da
push eax
call fcn.0040be6d
jmp 0x4108da
push dword [esi]
call fcn.004201a4
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0042015d
add esp, 8
jmp 0x410cdf
sub eax, 5
cmp eax, 0xa
ja case.0x455bcd.6
jmp dword [eax*4 + 0x4563ed]
mov eax, dword [ebx]
test eax, eax
je case.0x455bcd.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [ebx]
jmp 0x455c65
mov esi, dword [ebx]
test esi, esi
je case.0x455bcd.6
lea ecx, [esi + 8]
call fcn.0040bd2c
push 0x18
jmp 0x455c64
mov esi, dword [ebx]
test esi, esi
je case.0x455bcd.6
mov ecx, esi
call fcn.0041e29c
push 4
jmp 0x455c64
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.004201a4
add esp, 4
push 8
push dword [ebx]
jmp 0x455c65
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455bcd.6
push ecx
call fcn.004605e9
jmp case.0x455bcd.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455bcd.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455bcd.6
mov esi, dword [ebx]
test esi, esi
je case.0x455bcd.6
mov ecx, esi
call fcn.0040bd2c
push 0x14
push esi
call fcn.0042015d
add esp, 8
jmp case.0x455bcd.6
cmp dword [0x4d12ac], 4
jne 0x4110fe
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x41112f
push eax
call fcn.0040be6d
jmp 0x41112f
push ecx
call fcn.0041e631
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x411109
sub eax, 5
cmp eax, 0xa
ja case.0x455cbf.6
jmp dword [eax*4 + 0x456419]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x455cbf.6
push eax
call dword [esp + 0x68]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x455d7e
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455cbf.6
lea ecx, [esi + 8]
call fcn.0040bd2c
push 0x18
jmp 0x455d7d
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455cbf.6
mov ecx, esi
call fcn.0041e29c
push 4
jmp 0x455d7d
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.004201a4
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x455d7e
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455cbf.6
push ecx
call fcn.004605e9
jmp case.0x455cbf.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455cbf.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455cbf.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455cbf.6
mov ecx, esi
call fcn.0040bd2c
push 0x14
push esi
call fcn.0042015d
add esp, 8
jmp case.0x455cbf.6
mov edi, dword [edx + 0x10]
jmp 0x410900
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x4104c5
push eax
call fcn.0040be6d
jmp 0x4104c5
push dword [esi]
call fcn.004201a4
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0042015d
add esp, 8
jmp 0x411182
sub eax, 5
cmp eax, 0xa
ja case.0x455dd6.6
jmp dword [eax*4 + 0x456445]
mov eax, dword [ebx]
test eax, eax
je case.0x455dd6.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [ebx]
jmp 0x455e6e
mov esi, dword [ebx]
test esi, esi
je case.0x455dd6.6
lea ecx, [esi + 8]
call fcn.0040bd2c
push 0x18
jmp 0x455e6d
mov esi, dword [ebx]
test esi, esi
je case.0x455dd6.6
mov ecx, esi
call fcn.0041e29c
push 4
jmp 0x455e6d
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.004201a4
add esp, 4
push 8
push dword [ebx]
jmp 0x455e6e
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455dd6.6
push ecx
call fcn.004605e9
jmp case.0x455dd6.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455dd6.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455dd6.6
mov esi, dword [ebx]
test esi, esi
je case.0x455dd6.6
mov ecx, esi
call fcn.0040bd2c
push 0x14
push esi
call fcn.0042015d
add esp, 8
jmp case.0x455dd6.6
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d12a8]
cmp ecx, eax
je 0x410faa
push eax
call fcn.0040be6d
jmp 0x410faa
sub eax, 5
cmp eax, 0xa
ja case.0x455ea2.6
jmp dword [eax*4 + 0x456471]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x455ea2.6
push eax
call dword [esp + 0x68]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x455f61
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455ea2.6
lea ecx, [esi + 8]
call fcn.0040bd2c
push 0x18
jmp 0x455f60
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455ea2.6
mov ecx, esi
call fcn.0041e29c
push 4
jmp 0x455f60
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.004201a4
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x455f61
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455ea2.6
push ecx
call fcn.004605e9
jmp case.0x455ea2.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455ea2.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455ea2.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455ea2.6
mov ecx, esi
call fcn.0040bd2c
push 0x14
push esi
call fcn.0042015d
add esp, 8
jmp case.0x455ea2.6
mov eax, dword [eax + 0x10]
jmp 0x410c5d
mov eax, dword [0x4d3384]
mov esi, dword [eax + 8]
jmp 0x41051f
push 0x4d3540
call fcn.004205d2
add esp, 4
cmp dword [0x4d3540], 0xffffffff
jne 0x410545
mov ecx, 0x4d3544
call fcn.0040bf07
push 0x4427e9
call fcn.00420433
add esp, 4
push 0x4d3540
call fcn.00420588
add esp, 4
jmp 0x410545
test edx, edx
jne 0x410688
test ecx, ecx
jne 0x4105f2
jmp 0x410590
push 0x4d3540
call fcn.004205d2
add esp, 4
cmp dword [0x4d3540], 0xffffffff
jne 0x456015
mov ecx, 0x4d3544
call fcn.0040bf07
push 0x4427e9
call fcn.00420433
add esp, 4
push 0x4d3540
call fcn.00420588
add esp, 4
mov ebx, dword [0x4d3370]
jmp 0x41094d
test edi, edi
jne 0x410b64
test eax, eax
jne 0x410a73
jmp 0x41098f
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0042015d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x410e47
mov edi, dword [esp + 0x4c]
jmp 0x4107ec
mov eax, dword [esp + 0x34]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x10], eax
jmp 0x410819
cmp byte [esp + 0x39], 0
je 0x45607c
mov eax, dword [esi + 0x10]
jmp 0x41127f
mov eax, esi
jmp 0x41127f
inc esi
jmp 0x4112ea
sub esi, 1
js 0x411315
jmp 0x4112ea
cmp eax, 3
je 0x4112f9
add eax, 0xffffffd9
cmp eax, 3
ja 0x411315
jmp 0x4112f9
test esi, esi
je 0x411315
push dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
push 0x6e
call fcn.00473ef6
or edi, 0xffffffff
lea ecx, [esp + 0xe0]
mov dword [esp + 0x1c], edi
call fcn.0040e650
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
jmp 0x410445
lea ecx, [esp + 0x2c]
call fcn.0041e61b
mov esi, eax
mov ecx, esi
call fcn.0040e650
mov ebx, dword [esp + 0x24]
mov byte [esi], 1
jmp 0x41133b
cmp byte [esp + 0x39], 0
je 0x456119
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x10]
jmp 0x411331
mov esi, dword [esp + 0x10]
jmp 0x411331
mov ecx, dword [esp + 0x20]
push 8
push ecx
mov esi, dword [ecx + 4]
call fcn.0042015d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
jmp 0x411351
mov esi, dword [eax + 4]
push 8
push eax
call fcn.0042015d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x41135e
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.00473ef6
lea ecx, [esp + 0xa0]
call fcn.0040bd2c
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4561f8
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.00473ef6
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4561f8
lea ecx, [esp + 0xb0]
call fcn.0040e650
jmp 0x4561f8
movsx eax, word [esi + 0xa]
push eax
push 0x6e
jmp 0x4561e1
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.00473ef6
jmp 0x4561f8
lea ecx, [esp + 0xc0]
call fcn.0040e650
mov edx, dword [esp + 0x20]
jmp 0x45621d
push dword [esp + 0x58]
mov ecx, dword [esp + 0x2c]
push 0x6e
call fcn.00473ef6
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 0x410441
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 0x4562d3
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.00473ef6
jmp 0x45628a
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.00473ef6
lea ecx, [esp + 0xd0]
call fcn.0040e650
lea ecx, [esp + 0x90]
call fcn.0040e650
jmp 0x4561f8
push dword [esp + 0x58]
push 0x6d
jmp 0x4562d5
push dword [esp + 0x58]
push 0x6b
jmp 0x4562b1
push dword [esp + 0x58]
push 0x6d
mov ecx, dword [esp + 0x30]
call fcn.00473ef6
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4561f8
push dword [esp + 0x58]
push 0x6c
jmp 0x4562b1
push dword [esp + 0x58]
push 0x6e
mov ecx, dword [esp + 0x30]
call fcn.00473ef6
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], edx
jmp 0x4561f8
mov eax, dword [edi]
test eax, eax
je case.0x4114e7.6
push eax
call dword [esp + 0x68]
push 0x10
push dword [edi]
call fcn.0042015d
add esp, 8
jmp case.0x4114e7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4114e7.6
push ecx
call fcn.0041f1ab
jmp case.0x4114e7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4114e7.6
push ecx
call fcn.0041e284
jmp case.0x4114e7.6
mov eax, dword [edi]
push dword [eax + 4]
call fcn.004201a4
add esp, 4
push 8
push dword [edi]
call fcn.0042015d
add esp, 8
jmp case.0x4114e7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4114e7.6
push ecx
call fcn.004605e9
jmp case.0x4114e7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4114e7.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4114e7.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4114e7.6
push ecx
call fcn.00471741
jmp case.0x4114e7.6