Function at 0x410580
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 [0x4d25a0]
push edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x8c], ecx
cmp eax, dword [ecx + 4]
jg 0x41177a
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.0041fe8b
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 [0x49c470]
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.0x411455.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.0x411455.4
movsx eax, dx
cmp eax, 0x33
je 0x410700
cmp eax, 0x4f
je case.0x411455.4
cmp eax, 5
je 0x410b15
cmp eax, 0x58
ja case.0x411455.4
movzx eax, byte [eax + 0x411924]
jmp dword [eax*4 + 0x4118b8]
mov eax, dword [esi]
cmp eax, 4
jl 0x411444
cmp eax, 0x27
jge 0x411444
mov ebx, 0x14
mov dword [esp + 0x14], ebx
mov cl, byte [esp + 0x1b]
mov edx, dword [esp + 0x20]
test cl, cl
jne 0x410cf3
mov eax, edx
imul eax, dword [eax], 0x15
movzx eax, byte [eax + ebx + 0x4b1860]
cmp eax, 3
jne 0x410a40
cmp dword [esp + 0x2c], 1
jne 0x45581e
mov eax, dword [esp + 0x30]
xor edi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
test eax, eax
jne 0x410ef9
test edx, edx
je 0x4106f5
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0041fe7d
add esp, 8
mov edx, esi
test esi, esi
jne 0x4106e1
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 0x410ea2
cmp ebx, 0x4d0290
je 0x410755
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x4113d3
mov esi, dword [ebx + 8]
test esi, esi
jne 0x4113e5
cmp eax, 5
jge 0x45535e
push 0x4d0290
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00411a20
mov eax, dword [esp + 0x10]
inc edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], edi
cmp edi, 1
jne 0x410ee2
mov dword [esp + 0x88], ebx
cmp dword [0x4d23a0], 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 0x41146e
xor al, al
test al, al
jne 0x410bb2
cmp byte [0x4d23a9], al
jne 0x45550a
mov esi, dword [0x4d23a4]
cmp dword [esi], 0
je 0x410bb2
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d2560]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x455517
mov dword [0x4d2580], 0
mov dword [0x4d257c], 0
mov dword [esp + 0x68], 0x4d2564
mov dword [esp + 0x64], 0x4d2564
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 0x45555a
test edx, edx
je 0x455562
mov edi, dword [eax]
mov ebx, dword [ebx]
cmp ecx, edx
jb 0x410ab1
mov edx, ecx
test edx, edx
je 0x410855
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 0x410859
add ebx, 2
add edi, 2
sub edx, 1
jne 0x410832
xor eax, eax
jmp 0x410868
mov eax, dword [esp + 0x40]
cmp word [esp + 0x44], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x41090c
jle 0x410983
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x410988
mov edi, dword [edx + 4]
cmp edi, ecx
ja 0x410f45
mov eax, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
test edi, edi
je 0x4108ed
jmp 0x4108b0
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 0x410ae6
mov eax, dword [esp + 0x44]
add ebx, 2
add eax, 2
sub dword [esp + 0x40], 1
mov dword [esp + 0x44], eax
jne 0x4108b0
mov ecx, dword [esp + 0x48]
cmp edi, ecx
jb 0x410af5
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 0x410a35
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x6c]
mov edx, dword [eax + 0x18]
test edx, edx
je 0x410988
mov eax, dword [edx + 4]
cmp ecx, eax
ja 0x410f89
mov edi, dword [edx]
mov ebx, dword [ebx]
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x410a1b
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 0x410a03
cmp word [esp + 0x74], ax
jae 0x410a23
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 0x410988
jmp 0x410a25
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 [0x4d2580]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4d257c]
mov dword [ecx + 0x1c], eax
je 0x410bb2
mov eax, dword [esi]
test eax, eax
je 0x410bb2
mov eax, dword [eax + 0x14]
test eax, eax
je 0x410bb2
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.00411b20
test eax, eax
js 0x455718
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebp + 0x14]
jmp 0x410634
add ebx, 2
add edi, 2
sub dword [esp + 0x44], 1
jne 0x410940
mov eax, dword [edx + 4]
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jb 0x410967
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 0x410800
cmp eax, 6
ja case.0x410a49.3
jmp dword [eax*4 + 0x411980]
test cl, cl
jne 0x410fba
push 8
call fcn.0041fe8b
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 0x4114c8
cmp ebx, 8
je 0x4114c8
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 0x4109fb
test edx, edx
je 0x410855
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 0x4113bf
cmp word [esp + 0x44], ax
jmp 0x410862
mov eax, dword [esp + 0x5c]
cmp word [esp + 0x78], ax
jae 0x4108f5
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 0x410988
jmp 0x4108f7
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x410fcb
cmp ebx, 0x4d0290
je 0x410b6a
mov eax, dword [ebx + 0xc]
cmp eax, 4
je 0x410f4c
mov esi, dword [ebx + 8]
test esi, esi
jne 0x410f5e
cmp eax, 5
jge 0x455155
push 0x4d0290
mov ecx, ebx
mov dword [ebx + 0xc], 1
mov dword [ebx], 0
call fcn.00411a20
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 0x41100b
mov edi, ebx
mov esi, dword [esi]
mov ecx, edi
call fcn.0040e8e0
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 0x410634
mov ebx, dword [0x4d2390]
test ebx, ebx
je 0x4556ec
mov ecx, dword [esp + 0x8c]
mov eax, dword [0x4d2560]
mov byte [esp + 0x3f], 0
cmp eax, dword [ecx + 4]
jg 0x45556f
mov dword [0x4d2580], 0
mov dword [0x4d257c], 0
mov dword [esp + 0x60], 0x4d2564
mov dword [esp + 0x64], 0x4d2564
mov esi, dword [esp + 0x6c]
mov edi, dword [ebx + 4]
mov eax, dword [esi + 4]
mov dword [esp + 0x48], eax
test eax, eax
je 0x4555b4
test edi, edi
je 0x4555bc
mov edx, dword [ebx]
mov esi, dword [esi]
cmp eax, edi
jb 0x410c5b
mov edi, eax
test edi, edi
je 0x410c57
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 0x410de2
add esi, 2
add edx, 2
sub edi, 1
jne 0x410c30
xor eax, eax
jmp 0x410c87
test edi, edi
je 0x410c57
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 0x410f94
cmp word [esp + 0x5c], ax
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x410df0
jg 0x410cfb
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 [0x4d2390]
mov ecx, dword [esp + 0x60]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d2390]
mov eax, dword [0x4d2580]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4d2390]
mov eax, dword [0x4d257c]
mov dword [ecx + 0x1c], eax
je 0x4556ec
mov eax, dword [0x4d2390]
test eax, eax
je 0x4556ec
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4109d4
jmp 0x4556ec
mov eax, dword [edx + 4]
jmp 0x4106a8
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 0x410c96
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], edx
cmp edx, eax
jbe 0x410d25
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 0x410d5d
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 0x410d65
add esi, 2
add edx, 2
sub edi, 1
jne 0x410d32
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x68], eax
jb 0x410d74
jmp 0x410d97
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x410d97
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 [0x4d2390]
mov dword [ebx + 0x18], eax
mov dword [0x4d2390], ebx
cmp dword [ebx + 0x1c], 0
je 0x410c96
mov ecx, dword [esp + 0x64]
mov dword [ecx + 0x1c], ebx
mov ecx, dword [0x4d2390]
mov dword [esp + 0x64], ecx
mov ebx, dword [ecx + 0x1c]
mov dword [0x4d2390], ebx
jmp 0x410c01
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411fe0
test eax, eax
js 0x45571e
mov al, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], al
mov dword [esp + 0x20], ecx
jmp 0x410696
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jmp 0x410c81
mov eax, dword [esp + 0x48]
mov edx, dword [ebx + 0x18]
lea ecx, [ebx + 0x18]
mov dword [esp + 0x44], ecx
test edx, edx
je 0x410c96
mov esi, dword [edx + 4]
cmp eax, esi
ja 0x4115a3
mov edi, dword [esp + 0x6c]
mov esi, dword [edx]
mov dword [esp + 0x40], eax
mov edi, dword [edi]
test eax, eax
je 0x410e4e
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 0x410e55
add edi, 2
add esi, 2
sub dword [esp + 0x40], 1
jne 0x410e21
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
cmp eax, dword [edx + 4]
jb 0x410e64
jmp 0x410e83
mov eax, dword [esp + 0x78]
cmp word [esp + 0x5c], ax
jae 0x410e83
mov ecx, dword [esp + 0x44]
mov ebx, edx
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [0x4d2390]
mov dword [ebx + 0x1c], eax
mov dword [0x4d2390], ebx
cmp dword [ebx + 0x18], 0
je 0x410c96
mov ecx, dword [esp + 0x60]
mov dword [ecx + 0x18], ebx
mov ecx, dword [0x4d2390]
mov dword [esp + 0x60], ecx
mov ebx, dword [ecx + 0x18]
mov dword [0x4d2390], ebx
jmp 0x410c01
cmp byte [esp + 0x35], 0
jne 0x4111f1
push 0x18
call fcn.0041fe8b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0290
mov dword [esi + 8], 0
call fcn.00411a20
mov eax, dword [esp + 0x10]
mov dword [esi + 0x10], eax
mov eax, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], eax
jmp 0x410759
cmp byte [esp + 0x35], 0
jne 0x455502
mov dword [esp + 0x88], eax
jmp 0x410772
mov edi, dword [esp + 0x10]
lea ecx, [ecx]
mov ebx, dword [edi + 8]
mov esi, dword [edi + 0x10]
test ebx, ebx
jne 0x4115ce
mov eax, dword [edi + 0xc]
cmp eax, 5
jge 0x4116df
push 0x18
push edi
mov dword [edi + 0xc], 1
mov dword [edi], 0
call fcn.0041fe7d
add esp, 8
mov edi, esi
test esi, esi
jne 0x410f00
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
jmp 0x4106dd
mov edi, ecx
jmp 0x410898
cmp dword [0x4d029c], 4
jne 0x410b3d
jmp 0x45511e
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x455139
push 0x10
push esi
call fcn.0041fe7d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x410b48
mov ecx, eax
mov dword [esp + 0x48], eax
jmp 0x41092a
add esi, 2
add edx, 2
sub edi, 1
jne 0x410c60
jmp 0x410c57
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xd
mov dword [esi], eax
jmp 0x410692
xor al, al
mov dword [edx], ebx
mov byte [esp + 0x1b], al
mov byte [esp + 0x55], al
jmp 0x410a73
cmp byte [esp + 0x35], 0
jne 0x41135a
push 0x18
call fcn.0041fe8b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0290
mov dword [esi + 8], 0
call fcn.00411a20
mov eax, dword [esp + 0x10]
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
jmp 0x410b6e
cmp byte [esp + 0x35], 0
jne 0x45531f
mov edi, edx
jmp 0x410b90
test cl, cl
je 0x411244
mov eax, dword [edx + 4]
cmp dword [eax], 0x12
je 0x4110ae
test cl, cl
jne 0x411352
mov eax, edx
cmp dword [eax], 0x14
je 0x4557bb
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411fe0
test eax, eax
js 0x45571e
mov edx, dword [esp + 0x50]
mov cl, byte [esp + 0x55]
mov dword [esp + 0x20], edx
jmp case.0x410a49.2
test ecx, ecx
je 0x41108a
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
mov edx, eax
cmp ax, 0x48
je 0x454d31
cmp dx, 0x4f
je 0x454d31
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x12
mov dword [esi], eax
jmp 0x410692
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0x13
mov dword [esi], eax
jmp 0x410692
test cl, cl
je 0x4110ca
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0041fe7d
mov edx, esi
add esp, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], edx
cmp byte [esp + 0x54], 0
je 0x4555c9
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 0x410a7c
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 1
mov dword [esi], eax
jmp 0x410692
mov esi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test esi, esi
je 0x4115f6
cmp byte [esp + 0x35], 0
jne 0x41166f
push 0x18
call fcn.0041fe8b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0290
mov dword [esi + 8], 0
call fcn.00411a20
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 0x454b64
cmp esi, 1
je 0x411607
cmp byte [esp + 0x35], 0
mov eax, dword [esp + 0x10]
jne 0x454b80
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x24]
push eax
push edi
push esi
push 0
call fcn.00412c50
test eax, eax
js 0x455718
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xfc], 1
jne 0x4109fb
jmp 0x455718
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x411422
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0xb
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410696
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
xor ebx, ebx
mov dword [esi], eax
jmp 0x410692
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d0290
je 0x41123a
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x41182a
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x41183c
cmp eax, 5
jge 0x45542a
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d0290
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.00411a20
mov byte [esp + 0x35], 0
jmp 0x410755
mov eax, edx
jmp 0x41102b
mov edi, dword [esp + 0x38]
mov dword [esp + 0x14], 0x16
test edi, edi
jne 0x411475
cmp ebx, 0x4d0290
je 0x411284
cmp dword [ebx + 0xc], 4
je 0x4118a5
mov ecx, ebx
call fcn.0040e8e0
push 0x4d0290
mov ecx, ebx
call fcn.00411a20
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 0x4114b6
mov esi, ebx
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
cmp eax, 4
je 0x4549ff
test ecx, ecx
jne 0x454a12
cmp eax, 5
jge 0x454a27
push 0x10
mov dword [esi], 0
mov dword [esi + 0xc], 4
call fcn.0041fe8b
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 0x454ae6
cmp byte [edx + 0x103], 0
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
je 0x410634
jmp 0x454aff
mov eax, dword [esp + 0x14]
cmp eax, 0x16
jne 0x4115ae
mov dword [esp + 0x14], 0xc
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410696
mov eax, dword [edx + 4]
jmp 0x41103a
mov ecx, dword [esp + 0x10]
cmp ecx, 0x4d0290
je 0x4113a3
mov eax, dword [ecx + 0xc]
cmp eax, 4
je 0x455206
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x45522e
cmp eax, 5
jge 0x455247
mov esi, dword [esp + 0x10]
mov ecx, esi
push 0x4d0290
mov dword [esi + 0xc], 1
mov dword [esi], 0
call fcn.00411a20
mov byte [esp + 0x35], 0
jmp 0x410b6a
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xe
mov dword [esi], eax
jmp 0x410692
add ebx, 2
add edi, 2
sub edx, 1
jne 0x410ac0
jmp 0x410855
cmp dword [0x4d029c], 4
jne 0x410728
jmp 0x455327
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x455342
push 0x10
push esi
call fcn.0041fe7d
mov eax, dword [ebx + 0xc]
add esp, 8
mov dword [ebx + 8], 0
jmp 0x410733
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 9
mov dword [esi], eax
jmp 0x410692
cmp eax, 0x13
je 0x4111c9
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [esp + 0x14], 0x11
mov ebx, dword [esp + 0x14]
mov dword [esi], eax
jmp 0x410696
dec eax
cmp eax, 0x29
ja case.0x411455.4
movzx eax, byte [eax + 0x4119bc]
jmp dword [eax*4 + 0x41199c]
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 7
mov dword [esi], eax
jmp 0x410692
mov al, 1
jmp 0x410795
cmp byte [esp + 0x35], 0
je 0x411620
mov esi, dword [esp + 0x10]
cmp esi, 0x4d0290
je 0x4114ac
cmp dword [0x4d029c], 4
je 0x41181b
mov ecx, esi
call fcn.0040e8e0
push 0x4d0290
mov ecx, esi
call fcn.00411a20
mov byte [esp + 0x35], 0
jmp 0x411284
cmp byte [esp + 0x35], 0
jne 0x4549f7
mov esi, edx
jmp 0x4112aa
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 0x4555f1
cmp esi, 1
jne 0x4555f9
mov eax, ebx
push eax
lea ecx, [esp + 0xe4]
mov dword [esp + 0xec], 0
call fcn.00411a20
lea ecx, [esp + 0xe0]
call fcn.004039fe
mov ecx, dword [esp + 0x14]
test al, al
jne 0x411752
cmp ecx, 7
jne 0x41158c
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push eax
call fcn.0041b0fd
test eax, eax
js 0x4557ef
cmp dword [esp + 0x14], 8
je 0x45560c
cmp esi, 1
jne 0x455626
mov esi, ebx
mov ecx, esi
call fcn.0040e8e0
mov byte [esi], 0
cmp byte [esp + 0x1b], 0
mov dword [esi + 0xc], 9
jne 0x455642
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x54], 0
je 0x455663
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.0040e8e0
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
jmp 0x4109fb
mov eax, esi
mov dword [esp + 0x48], esi
jmp 0x410e11
cmp eax, 0x13
je 0x411339
jmp 0x454c97
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 5
mov dword [esi], eax
jmp 0x410692
mov eax, dword [ebx + 0xc]
dec dword [eax]
mov eax, dword [ebx + 0xc]
cmp dword [eax], 0
je 0x4116c3
push 0x10
push ebx
call fcn.0041fe7d
add esp, 8
mov dword [edi + 8], 0
jmp 0x410f0e
push 0x4d0290
mov ecx, ebx
call fcn.0040c627
jmp 0x411152
mov eax, ebx
jmp 0x41118d
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 2
mov dword [esi], eax
jmp 0x410692
push 0x18
call fcn.0041fe8b
add esp, 4
mov esi, eax
mov ecx, esi
push 0x4d0290
mov dword [esi + 8], 0
call fcn.00411a20
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x411768
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
jmp 0x411288
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 4
mov dword [esi], eax
jmp 0x410692
mov ecx, dword [esp + 0x10]
push 0x4d0290
call fcn.0040c627
mov byte [esp + 0x35], 0
jmp 0x411152
push 0x4d0290
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d6ad
lea ecx, [esp + 0x28]
call fcn.0041d711
mov esi, eax
mov ecx, esi
call fcn.0040e8e0
mov dword [esi + 0xc], 9
mov byte [esi], 0
mov edi, dword [ebp + 0xc]
inc dword [edi]
jmp 0x410a91
push dword [ebx]
call fcn.0041fec4
add esp, 4
push 4
push dword [ebx + 0xc]
call fcn.0041fe7d
add esp, 8
jmp 0x4115df
sub eax, 5
cmp eax, 0xa
ja case.0x4116eb.6
jmp dword [eax*4 + 0x4119e8]
push 0x4d0290
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d6ad
lea ecx, [esp + 0x28]
call fcn.0041d711
mov esi, eax
mov ecx, esi
call fcn.0040e8e0
mov edi, dword [ebp + 0xc]
mov dword [esi + 0xc], 9
mov byte [esi], 1
inc dword [edi]
jmp 0x410a91
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 3
mov dword [esi], eax
jmp 0x410692
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 8
mov dword [esi], eax
jmp 0x410692
cmp ecx, 8
je 0x411528
test al, al
jne 0x41158c
jmp 0x411523
mov edx, esi
mov dword [esi + 0x10], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], edx
jmp 0x411288
push 0x4d25a0
call fcn.004202f2
add esp, 4
cmp dword [0x4d25a0], 0xffffffff
jne 0x4105b6
push 0x44252b
call fcn.00420153
add esp, 4
push 0x4d25a0
call fcn.004202a8
add esp, 4
jmp 0x4105b6
push 0x4d0290
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d6ad
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.0041d711
mov ebx, dword [esp + 0x24]
mov ecx, ebx
push eax
push dword [edx]
call fcn.0041d78e
test eax, eax
js 0x4556b1
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 0x410634
cmp dword [esi + 0xc], 4
jne 0x411499
jmp 0x4549dc
cmp dword [0x4d029c], 4
jne 0x411209
jmp 0x45540f
push ecx
call fcn.0041d9e2
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x411214
push 0x4d0290
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d6ad
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.0041d711
mov esi, eax
mov ecx, esi
call fcn.0040e8e0
fld qword [esp + 0x78]
inc dword [edi]
fstp qword [esi]
mov dword [esi + 0xc], 3
jmp 0x410a91
cmp dword [0x4d029c], 4
jne 0x411271
jmp 0x4549c1
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d0298]
cmp ecx, eax
je 0x411284
push eax
call fcn.0040c203
jmp 0x411284
mov ecx, dword [esi + 8]
mov eax, dword [0x4d0298]
cmp ecx, eax
je 0x4114ac
push eax
call fcn.0040c203
jmp 0x4114ac
mov esi, dword [edx + 0x10]
jmp 0x4112aa
cmp ecx, edi
je 0x4112fe
push edi
call fcn.0040c203
jmp 0x4112fe
push ecx
call fcn.0041d9e2
mov eax, dword [esi + 0xc]
mov dword [esi + 8], 0
jmp 0x4112c3
sub eax, 5
cmp eax, 0xa
ja case.0x454a33.6
jmp dword [eax*4 + 0x4558e1]
mov eax, dword [esi]
test eax, eax
je case.0x454a33.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [esi]
call fcn.0041fe7d
add esp, 8
jmp case.0x454a33.6
mov ebx, dword [esi]
test ebx, ebx
je 0x454add
lea ecx, [ebx + 8]
call fcn.0040b276
push 0x18
jmp 0x454ad4
mov ebx, dword [esi]
test ebx, ebx
je 0x454add
mov ecx, ebx
call fcn.0041d613
push 4
jmp 0x454ad4
mov eax, dword [esi]
push dword [eax + 4]
call fcn.0041fec4
add esp, 4
push 8
push dword [esi]
call fcn.0041fe7d
add esp, 8
jmp case.0x454a33.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x454a33.6
push ecx
call fcn.0045fcd7
jmp case.0x454a33.6
mov ecx, dword [esi]
test ecx, ecx
je case.0x454a33.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x454a33.6
mov ebx, dword [esi]
test ebx, ebx
je 0x454add
mov ecx, ebx
call fcn.0040b276
push 0x14
push ebx
call fcn.0041fe7d
add esp, 8
mov ebx, dword [esp + 0x1c]
jmp case.0x454a33.6
lea ecx, [esp + 0x28]
call fcn.0041d711
mov ecx, eax
call fcn.004874c9
mov edx, dword [esp + 0x24]
jmp 0x411314
lea ecx, [esp + 0x28]
call fcn.0041d711
push eax
mov ecx, edx
call fcn.00487608
mov eax, dword [ebp + 0x14]
jmp 0x410634
push 0x4d0290
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d6ad
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.0041d711
mov esi, eax
mov ecx, esi
call fcn.0040e8e0
mov dword [esi + 0xc], 2
mov dword [esi], edi
mov dword [esi + 4], ebx
jmp 0x4116b9
mov eax, dword [edx + ecx*4]
lea ecx, [esp + 0x28]
push dword [eax]
call fcn.0041d711
mov ecx, eax
call fcn.00470fd4
inc dword [edi]
jmp 0x410aa9
mov eax, dword [eax + 0x10]
jmp 0x41118d
push 0x4d0290
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0x16
call fcn.0041d6ad
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 0x454c44
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 0x455682
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d711
mov ecx, eax
call fcn.0047193e
inc dword [edi]
lea ecx, [esp + 0xa0]
call fcn.0040b276
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 0x4109fb
lea eax, [esp + 0x87]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d711
mov ebx, dword [esp + 0x28]
mov ecx, ebx
push eax
push edi
push esi
push 0
call fcn.0040d880
test eax, eax
js 0x4556cb
cmp dword [ebx + 0xfc], 1
je 0x4556cb
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 0x4109fb
mov dword [esp + 0x14], 0x10
jmp 0x411341
cmp dword [esp + 0x38], 0
mov dword [esp + 0x14], 0x16
sete al
test al, al
jne 0x4556e3
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.0041d711
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
push edi
push esi
call fcn.00411b20
test eax, eax
js 0x4556d5
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d711
mov ecx, eax
call fcn.0040c627
lea ecx, [esp + 0xb0]
call fcn.0040e8e0
jmp 0x4109fb
cmp dword [esp + 0x38], 0
sete al
test al, al
jne 0x4556e3
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.0041d711
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push eax
push edi
push esi
call fcn.00411b20
test eax, eax
js 0x45570c
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d711
mov ecx, eax
call fcn.0040c627
lea ecx, [esp + 0xc0]
call fcn.0040e8e0
jmp 0x4109fb
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 6
mov dword [esi], eax
jmp 0x410692
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xf
mov dword [esi], eax
jmp 0x410692
mov ecx, dword [esp + 0x20]
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x454deb
mov eax, dword [ecx + 4]
jmp 0x454ded
mov eax, ecx
cmp dword [eax], 0x14
je 0x454e2b
test dl, dl
je 0x454dfb
mov eax, dword [ecx + 4]
jmp 0x454dfd
mov eax, ecx
cmp dword [eax], 0x12
je 0x454e2b
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.00411fe0
test eax, eax
js 0x45571e
mov dl, byte [esp + 0x55]
mov ecx, dword [esp + 0x50]
mov byte [esp + 0x1b], dl
mov dword [esp + 0x20], ecx
jmp 0x454de2
cmp dword [esp + 0x2c], 0
sete al
test al, al
jne 0x455749
lea ecx, [esp + 0x28]
call fcn.0041d711
mov ecx, eax
call fcn.004039fe
lea ecx, [esp + 0x28]
mov bl, al
call fcn.0041b423
mov edi, dword [ebp + 0xc]
mov edx, dword [edi]
inc edx
mov dword [edi], edx
test bl, bl
jne 0x454e9d
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 0x454e7d
inc ecx
jmp 0x454e96
cmp ax, 0x58
jne 0x454e86
dec ecx
jmp 0x454e96
cmp ax, 0x7f
je 0x454e9d
cmp ax, 0x40
jne 0x454e96
test ecx, ecx
je 0x454e9d
inc edx
mov dword [edi], edx
test ecx, ecx
jne 0x454e6d
mov dword [esp + 0x14], 0x12
jmp 0x410a91
cmp dword [esp + 0x38], 0
sete al
test al, al
jne 0x4556e3
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 0x454ee1
inc ecx
jmp 0x454efd
cmp ax, 0x48
jne 0x454eea
dec ecx
jmp 0x454efd
mov esi, ebx
cmp ax, 0x7f
je 0x454f0b
cmp ax, 0x40
jne 0x454efd
cmp ecx, 1
je 0x454f0b
mov eax, dword [ebp + 0xc]
inc edx
mov ebx, edx
mov esi, ebx
mov dword [eax], edx
test ecx, ecx
jne 0x454ed1
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 0x410baa
test ecx, ecx
jne 0x410baa
lea eax, [esi - 1]
mov dword [edi], eax
jmp 0x410aa9
mov esi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov ebx, 0xa
mov dword [esi], eax
jmp 0x410692
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push str.Default
call fcn.0040b661
push 0xffffffffffffffff
push 0x29
jmp 0x454f80
sub esp, 0x10
mov dword [esp + 0x24], 0x16
mov ecx, esp
push 0x49d0d0
call fcn.0040b661
push 0
push 0x2a
lea ecx, [esp + 0x108]
call fcn.00402032
push 0x4d0290
lea ecx, [esp + 0x2c]
call fcn.0041d6ad
lea eax, [esp + 0xf0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d711
mov ecx, eax
call fcn.00401fd5
mov edi, dword [ebp + 0xc]
lea ecx, [esp + 0xf8]
inc dword [edi]
call fcn.0040b276
jmp 0x410a91
mov dword [esp + 0x90], 0
mov bl, 1
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 1
test ecx, ecx
je 0x45501b
mov eax, dword [edi + ecx*4 - 4]
movzx eax, word [eax + 8]
cmp ax, 0x48
je 0x455003
cmp ax, 0x4f
jne 0x45501b
lea ecx, [esp + 0x28]
call fcn.0041d711
push eax
lea ecx, [esp + 0x94]
call fcn.0040c627
xor bl, bl
lea ecx, [esp + 0x90]
call fcn.00485490
test al, al
jne 0x455079
test bl, bl
je 0x455761
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x170], 0
je 0x45505f
cmp byte [ecx + 0x179], 0
mov eax, dword [ecx + 0x174]
je 0x455052
mov eax, dword [eax + 0x10]
push eax
lea ecx, [esp + 0x94]
call fcn.0040c627
lea ecx, [esp + 0x90]
call fcn.00485490
test al, al
jne 0x455079
mov edx, 0xa7
jmp 0x455766
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.00487a15
test eax, eax
js 0x455786
mov dword [esp + 0x14], 0x16
test bl, bl
jne 0x4550d8
lea ecx, [esp + 0x28]
call fcn.0041b423
lea eax, [esp + 0xd0]
push eax
lea ecx, [esp + 0x2c]
call fcn.0041d6ad
lea ecx, [esp + 0xd0]
call fcn.0040e8e0
lea ecx, [esp + 0x90]
call fcn.0040e8e0
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 0x4109fb
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d0298]
cmp ecx, eax
je 0x410b6a
push eax
call fcn.0040c203
jmp 0x410b6a
push dword [esi]
call fcn.0041fec4
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0041fe7d
add esp, 8
jmp 0x410f6f
sub eax, 5
cmp eax, 0xa
ja case.0x455161.6
jmp dword [eax*4 + 0x45590d]
mov eax, dword [ebx]
test eax, eax
je case.0x455161.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [ebx]
jmp 0x4551f9
mov esi, dword [ebx]
test esi, esi
je case.0x455161.6
lea ecx, [esi + 8]
call fcn.0040b276
push 0x18
jmp 0x4551f8
mov esi, dword [ebx]
test esi, esi
je case.0x455161.6
mov ecx, esi
call fcn.0041d613
push 4
jmp 0x4551f8
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.0041fec4
add esp, 4
push 8
push dword [ebx]
jmp 0x4551f9
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455161.6
push ecx
call fcn.0045fcd7
jmp case.0x455161.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x455161.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455161.6
mov esi, dword [ebx]
test esi, esi
je case.0x455161.6
mov ecx, esi
call fcn.0040b276
push 0x14
push esi
call fcn.0041fe7d
add esp, 8
jmp case.0x455161.6
cmp dword [0x4d029c], 4
jne 0x411372
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d0298]
cmp ecx, eax
je 0x4113a3
push eax
call fcn.0040c203
jmp 0x4113a3
push ecx
call fcn.0041d9e2
mov eax, dword [esp + 0x10]
mov dword [eax + 8], 0
mov eax, dword [eax + 0xc]
jmp 0x41137d
sub eax, 5
cmp eax, 0xa
ja case.0x455253.6
jmp dword [eax*4 + 0x455939]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x455253.6
push eax
call dword [esp + 0x74]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x455312
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455253.6
lea ecx, [esi + 8]
call fcn.0040b276
push 0x18
jmp 0x455311
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455253.6
mov ecx, esi
call fcn.0041d613
push 4
jmp 0x455311
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.0041fec4
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x455312
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455253.6
push ecx
call fcn.0045fcd7
jmp case.0x455253.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455253.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455253.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455253.6
mov ecx, esi
call fcn.0040b276
push 0x14
push esi
call fcn.0041fe7d
add esp, 8
jmp case.0x455253.6
mov edi, dword [edx + 0x10]
jmp 0x410b90
mov ecx, dword [ebx + 8]
mov eax, dword [0x4d0298]
cmp ecx, eax
je 0x410755
push eax
call fcn.0040c203
jmp 0x410755
push dword [esi]
call fcn.0041fec4
add esp, 4
push 4
push dword [esi + 0xc]
call fcn.0041fe7d
add esp, 8
jmp 0x4113f6
sub eax, 5
cmp eax, 0xa
ja case.0x45536a.6
jmp dword [eax*4 + 0x455965]
mov eax, dword [ebx]
test eax, eax
je case.0x45536a.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [ebx]
jmp 0x455402
mov esi, dword [ebx]
test esi, esi
je case.0x45536a.6
lea ecx, [esi + 8]
call fcn.0040b276
push 0x18
jmp 0x455401
mov esi, dword [ebx]
test esi, esi
je case.0x45536a.6
mov ecx, esi
call fcn.0041d613
push 4
jmp 0x455401
mov eax, dword [ebx]
push dword [eax + 4]
call fcn.0041fec4
add esp, 4
push 8
push dword [ebx]
jmp 0x455402
mov ecx, dword [ebx]
test ecx, ecx
je case.0x45536a.6
push ecx
call fcn.0045fcd7
jmp case.0x45536a.6
mov ecx, dword [ebx]
test ecx, ecx
je case.0x45536a.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x45536a.6
mov esi, dword [ebx]
test esi, esi
je case.0x45536a.6
mov ecx, esi
call fcn.0040b276
push 0x14
push esi
call fcn.0041fe7d
add esp, 8
jmp case.0x45536a.6
mov ecx, dword [ecx + 8]
mov eax, dword [0x4d0298]
cmp ecx, eax
je 0x41123a
push eax
call fcn.0040c203
jmp 0x41123a
sub eax, 5
cmp eax, 0xa
ja case.0x455436.6
jmp dword [eax*4 + 0x455991]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
test eax, eax
je case.0x455436.6
push eax
call dword [esp + 0x74]
mov eax, dword [esp + 0x10]
push 0x10
push dword [eax]
jmp 0x4554f5
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455436.6
lea ecx, [esi + 8]
call fcn.0040b276
push 0x18
jmp 0x4554f4
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455436.6
mov ecx, esi
call fcn.0041d613
push 4
jmp 0x4554f4
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
push dword [eax + 4]
call fcn.0041fec4
mov eax, dword [esp + 0x14]
add esp, 4
push 8
push dword [eax]
jmp 0x4554f5
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455436.6
push ecx
call fcn.0045fcd7
jmp case.0x455436.6
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
test ecx, ecx
je case.0x455436.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x455436.6
mov eax, dword [esp + 0x10]
mov esi, dword [eax]
test esi, esi
je case.0x455436.6
mov ecx, esi
call fcn.0040b276
push 0x14
push esi
call fcn.0041fe7d
add esp, 8
jmp case.0x455436.6
mov eax, dword [eax + 0x10]
jmp 0x410eed
mov eax, dword [0x4d23a4]
mov esi, dword [eax + 8]
jmp 0x4107af
push 0x4d2560
call fcn.004202f2
add esp, 4
cmp dword [0x4d2560], 0xffffffff
jne 0x4107d5
mov ecx, 0x4d2564
call fcn.0040c29d
push 0x4424f9
call fcn.00420153
add esp, 4
push 0x4d2560
call fcn.004202a8
add esp, 4
jmp 0x4107d5
test edx, edx
jne 0x410918
test ecx, ecx
jne 0x410882
jmp 0x410820
push 0x4d2560
call fcn.004202f2
add esp, 4
cmp dword [0x4d2560], 0xffffffff
jne 0x4555a9
mov ecx, 0x4d2564
call fcn.0040c29d
push 0x4424f9
call fcn.00420153
add esp, 4
push 0x4d2560
call fcn.004202a8
add esp, 4
mov ebx, dword [0x4d2390]
jmp 0x410bdd
test edi, edi
jne 0x410df4
test eax, eax
jne 0x410d03
jmp 0x410c1f
mov esi, dword [edx + 4]
push 8
push edx
call fcn.0041fe7d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x4110d7
mov edi, dword [esp + 0x4c]
jmp 0x410a7c
mov edi, dword [ebp + 0xc]
jmp 0x410aa9
cmp byte [esp + 0x35], 0
je 0x4114f3
mov eax, dword [eax + 0x10]
jmp 0x4114f3
lea ecx, [esp + 0x28]
call fcn.0041d711
mov esi, eax
mov ecx, esi
call fcn.0040e8e0
mov byte [esi], 1
jmp 0x41155c
cmp byte [esp + 0x35], 0
je 0x455639
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x10]
jmp 0x411552
mov esi, dword [esp + 0x10]
jmp 0x411552
mov ecx, dword [esp + 0x20]
push 8
push ecx
mov esi, dword [ecx + 4]
call fcn.0041fe7d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
jmp 0x411572
mov esi, dword [eax + 4]
push 8
push eax
call fcn.0041fe7d
mov eax, esi
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x50], eax
xor al, al
jmp 0x41157f
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.0047341b
lea ecx, [esp + 0xa0]
call fcn.0040b276
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x455718
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.0047341b
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x455718
lea ecx, [esp + 0xb0]
call fcn.0040e8e0
jmp 0x455718
movsx eax, word [esi + 0xa]
push eax
push 0x6e
jmp 0x455701
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.0047341b
jmp 0x455718
lea ecx, [esp + 0xc0]
call fcn.0040e8e0
mov edx, dword [esp + 0x20]
jmp 0x45573d
push dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
push 0x6e
call fcn.0047341b
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 0x4106d1
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 0x455822
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.0047341b
jmp 0x4557aa
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.0047341b
lea ecx, [esp + 0xd0]
call fcn.0040e8e0
lea ecx, [esp + 0x90]
call fcn.0040e8e0
jmp 0x455718
push dword [esp + 0x58]
push 0x6d
jmp 0x455824
push dword [esp + 0x58]
push 0x6b
jmp 0x4557d1
push dword [esp + 0x58]
push 0x6d
mov ecx, dword [esp + 0x2c]
call fcn.0047341b
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x455718
push dword [esp + 0x58]
push 0x6c
jmp 0x4557d1
push dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
push 0x6e
call fcn.0047341b
or edi, 0xffffffff
lea ecx, [esp + 0xe0]
mov dword [esp + 0x1c], edi
call fcn.0040e8e0
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
jmp 0x4106d5
push dword [esp + 0x58]
push 0x6e
mov ecx, dword [esp + 0x2c]
call fcn.0047341b
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], edx
jmp 0x455718
mov eax, dword [edi]
test eax, eax
je case.0x4116eb.6
push eax
call dword [esp + 0x74]
push 0x10
push dword [edi]
call fcn.0041fe7d
add esp, 8
jmp case.0x4116eb.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116eb.6
push ecx
call fcn.0041e4f1
jmp case.0x4116eb.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116eb.6
push ecx
call fcn.0041d5fb
jmp case.0x4116eb.6
mov eax, dword [edi]
push dword [eax + 4]
call fcn.0041fec4
add esp, 4
push 8
push dword [edi]
call fcn.0041fe7d
add esp, 8
jmp case.0x4116eb.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116eb.6
push ecx
call fcn.0045fcd7
jmp case.0x4116eb.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116eb.6
mov eax, dword [ecx]
push 1
call dword [eax]
jmp case.0x4116eb.6
mov ecx, dword [edi]
test ecx, ecx
je case.0x4116eb.6
push ecx
call fcn.00470cec
jmp case.0x4116eb.6