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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x160
push esi
push edi
mov edi, ecx
mov dword [esp + 0x44], edi
mov eax, dword [edi + 0xec]
cmp eax, 0xed8
jge 0x4450ed
inc eax
mov dword [edi + 0xec], eax
cmp eax, 1
je 0x411023
cmp byte [edi + 0xfc], 0
mov byte [edi + 0x144], 0
jne 0x410e44
mov esi, dword [0x48f6f0]
cmp byte [edi + 0x144], 0
mov edx, 2
jne 0x410e44
cmp byte [0x4c6281], 0
jne 0x44513a
cmp byte [0x4c67e8], 0
jne 0x44514c
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
jne 0x410f70
cmp byte [0x4c6282], 1
je 0x4451c1
cmp dword [edi + 0xf8], 1
je 0x446063
mov edx, 2
cmp dword [0x4c74a8], 0
jne 0x4451de
cmp byte [0x4c6287], 1
je 0x44529e
cmp dword [edi + 0x454], 0
je 0x410c64
cmp byte [0x4c741c], 0
jne 0x410c64
mov esi, dword [edi + 0x44c]
lea eax, [edi + 0x44c]
mov byte [0x4c741c], 1
mov dword [esp + 0x14], 0
mov dword [esp + 8], eax
nop
test esi, esi
jne 0x410e6b
mov edi, dword [esp + 8]
lea esp, [esp]
mov eax, dword [edi]
mov dword [esp + 0x18], eax
test eax, eax
jne 0x410eb4
mov edi, dword [esp + 0x44]
mov byte [0x4c741c], al
cmp dword [esp + 0x14], eax
jg case.default.0x445e10
lea edx, [eax + 2]
cmp byte [0x4c67bc], 0
je 0x410d2d
cmp byte [edi + 0x458], 1
je 0x410d2d
cmp byte [0x4c67e8], 1
je 0x410d2d
xor ecx, ecx
mov dword [esp + 0x9c], 0
mov eax, 8
mov dword [esp + 0xa0], 8
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00420ff6
add esp, 4
mov dword [esp + 0x98], eax
xor ecx, ecx
mov word [eax], cx
push 4
call fcn.00420ff6
add esp, 4
test eax, eax
je 0x4110fc
mov dword [eax], 1
mov dword [esp + 0xa4], eax
jmp 0x410cf0
cmp dword [0x4c67dc], 0
jne 0x4452da
cmp byte [0x4c67bc], 0
je 0x445484
mov esi, dword [esp + 0xa4]
dec dword [esi]
jne 0x410d2d
push dword [esp + 0x98]
call fcn.0042106c
add esp, 4
push esi
call fcn.0042106c
add esp, 4
cmp dword [edi + 0x184], 0
jne 0x4454ad
cmp byte [0x4c6930], 0
jne 0x445b2c
mov eax, dword [edi + 0xf8]
cmp eax, 7
je 0x445c49
cmp eax, 2
je 0x410fdd
cmp eax, 8
je 0x445f22
cmp eax, 9
je 0x445f22
cmp eax, 3
je 0x410fdd
cmp eax, 4
je 0x410fdd
cmp eax, 5
je 0x410fdd
cmp eax, 6
je 0x410fdd
mov esi, dword [ebp + 8]
inc dword [ebp + 8]
mov dword [edi + 0xf4], esi
cmp esi, dword [0x4c72a0]
jg 0x445df5
test esi, esi
jle 0x445df5
shl esi, 4
add esi, dword [0x4c72dc]
je 0x445df5
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, 1
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], edx
movsx eax, word [eax + 8]
test eax, eax
jne 0x410ec8
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0040e580
mov esi, dword [esp + 0x58]
test esi, esi
jne 0x410f43
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], edx
cmp ecx, 5
jge 0x4110e9
mov dword [esp + 0x5c], 1
mov dword [esp + 0x50], 0
mov esi, dword [0x48f6f0]
cmp byte [edi + 0xfc], 0
je 0x410b7f
mov eax, dword [edi + 0xec]
mov byte [edi + 0x144], 0
cmp eax, 1
je 0x41103d
dec eax
mov dword [edi + 0xec], eax
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi]
cmp byte [eax + 0x11], 0
jne 0x410eac
mov edi, dword [eax + 0x14]
call dword [0x48f7b8]
mov ecx, eax
xor edx, edx
sub eax, edi
cmp edi, 0x7fffffff
ja 0x4452b8
cmp ecx, 0x7fffffff
ja 0x410e97
cdq
mov edi, dword [esi]
test edx, edx
jl 0x410eac
jg 0x4110ae
cmp eax, dword [edi + 0x18]
jae 0x4110ae
mov esi, dword [esi + 4]
jmp 0x410c30
mov ecx, dword [eax]
cmp byte [ecx + 0x11], 0
jne 0x4452c9
mov eax, dword [eax + 4]
jmp 0x410c42
cmp eax, 0x33
jne 0x410eda
push esi
mov ecx, edi
call fcn.0040e800
jmp 0x410e00
dec eax
cmp eax, 0x7e
ja case.0x410eeb.2
movzx eax, byte [eax + 0x411124]
jmp dword [eax*4 + 0x411110]
lea eax, [esp + 0x50]
mov ecx, edi
push eax
lea eax, [esp + 0x24]
push eax
push esi
push 0
call fcn.0040f5c0
test eax, eax
js 0x410e00
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x20]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
je 0x410e00
jmp 0x445d2d
lea eax, [esp + 0x6b]
mov ecx, edi
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x28]
push eax
push esi
push 0
call fcn.0040fe40
jmp 0x410f06
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x445d49
push esi
call fcn.0042106c
add esp, 4
mov dword [esp + 0x58], 0
jmp 0x410e0c
cmp dword [esp + 0x98], 0x12
je 0x4451ab
mov ecx, dword [0x4c67d8]
cmp ecx, 0xffffffff
jne 0x44515e
lea eax, [esp + 0x94]
mov ecx, 0x4c67b0
push eax
call fcn.004031ce
test eax, eax
je 0x410fbf
push 1
push 0
push 0
push 0
lea eax, [esp + 0xa4]
push eax
call esi
test eax, eax
je 0x410bc5
jmp 0x410f70
lea eax, [esp + 0x94]
push eax
call dword [0x48f6ec]
lea eax, [esp + 0x94]
push eax
call dword [0x48f6e8]
jmp 0x410fa3
push 0xa
call dword [0x48f17c]
cmp dword [edi + 0x2f0], 0
je 0x41100f
mov ecx, dword [edi + 0x2f8]
call fcn.00420719
test edx, edx
jl 0x41100f
jg 0x41108f
cmp eax, dword [edi + 0x2f0]
jae 0x41108f
mov eax, dword [edi + 0xf8]
cmp eax, 3
jl case.default.0x445e10
jmp 0x445e04
mov eax, dword [edi + 0x11c]
mov dword [esp + 0x40], eax
lea ecx, [ecx]
test eax, eax
je 0x410b65
jmp 0x445108
mov ecx, edi
call fcn.004111d0
cmp byte [edi + 0xfc], 1
je 0x410e61
mov ecx, edi
call fcn.004111f3
push 0
call dword [0x48f6e4]
push dword [0x4c62ac]
call dword [0x48f63c]
mov esi, dword [0x48f6e0]
lea eax, [esp + 0x14c]
push 0
push 0
push 0
push eax
call esi
test eax, eax
jle 0x410e61
jmp 0x446082
cmp dword [edi + 0xf8], 2
jne 0x411103
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
jmp case.default.0x445e10
inc dword [esp + 0x14]
call dword [0x48f7b8]
mov ecx, dword [esp + 0x44]
mov dword [edi + 0x14], eax
push dword [esi]
call fcn.00409fbd
mov ecx, dword [esi]
push 0
push 1
mov byte [ecx + 0x10], 1
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x4c]
inc eax
push eax
call fcn.0040b89c
mov eax, dword [esi]
mov byte [eax + 0x10], 0
jmp 0x410eac
add ecx, 0xfffffffb
cmp ecx, 0xa
ja case.0x4110f5.6
jmp dword [ecx*4 + 0x4111a4]
xor eax, eax
jmp 0x410cde
mov dword [esp + 8], 0
jmp 0x445ca6
push 0xffffffffffffffff
push 0x9a
mov byte [0x4c6280], 0
call fcn.0046a0b5
or eax, 0xffffffff
jmp 0x410e63
push dword [eax]
mov ecx, edi
call fcn.00409fbd
test eax, eax
je 0x445123
mov eax, dword [eax + 0x10]
mov ecx, edi
push 1
inc eax
push eax
call fcn.004568bf
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x44]
call fcn.00456cea
mov eax, dword [esp + 0x40]
jmp 0x411030
cmp byte [edi + 0x145], 0
je 0x410be4
jmp 0x410b9e
cmp dword [edi + 0xf8], 0
je 0x410be4
jmp 0x410bab
cmp ecx, dword [0x4c6814]
jge 0x44519c
mov eax, dword [0x4c6810]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx]
test eax, eax
je 0x44519c
cmp dword [eax + 0x18], 0
je 0x44519c
lea eax, [esp + 0x94]
push eax
mov eax, dword [ecx]
push dword [eax + 0x18]
push dword [eax]
call dword [0x48f520]
test eax, eax
jne 0x410fa3
jmp 0x410f8d
mov dword [0x4c67d8], 0xffffffff
jmp 0x410f8d
mov byte [edi + 0xfc], 1
mov dword [edi + 0xf8], 1
jmp 0x410bc5
mov byte [0x4c6287], 0
mov byte [0x4c6282], 0
mov dword [edi + 0xf8], 1
jmp 0x410bd2
mov eax, dword [0x4c74ac]
push eax
mov ecx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0xc], ecx
call fcn.0042106c
dec dword [0x4c74a8]
add esp, 4
mov dword [0x4c74ac], esi
neg esi
sbb esi, esi
xor ecx, ecx
and dword [0x4c74b0], esi
mov edx, dword [edi + 0x1c8]
mov dword [esp + 0x18], ecx
test edx, edx
je 0x44523f
mov esi, dword [edi + 0x1c4]
mov edi, dword [esp + 8]
mov eax, dword [esi + ecx*4]
mov eax, dword [eax]
test eax, eax
je 0x445232
cmp dword [eax], edi
je 0x445237
inc ecx
cmp ecx, edx
jb 0x445225
mov edi, dword [esp + 0x44]
mov dword [esp + 0x18], ecx
cmp ecx, edx
je 0x44528e
mov eax, dword [edi + 0x1c4]
mov eax, dword [eax + ecx*4]
mov ecx, edi
mov eax, dword [eax]
add eax, 8
push eax
call fcn.00409fbd
mov ecx, dword [edi + 0x1c4]
mov esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + eax*4]
mov ecx, dword [ecx]
add ecx, 0x18
push ecx
lea ecx, [edi + 0x14c]
call fcn.004081a7
mov eax, dword [esi + 0x10]
mov ecx, edi
push 0
push 1
inc eax
push eax
call fcn.0040b89c
jmp case.default.0x445e10
mov esi, dword [0x48f6f0]
mov edx, 2
jmp 0x410bf1
cmp byte [0x4c6281], 0
jne 0x410bfe
push 0xa
call dword [0x48f17c]
jmp 0x410e37
cmp ecx, 0x7fffffff
jbe 0x410e97
jmp 0x410e96
lea eax, [esp + 0x18]
mov ecx, edi
push eax
call fcn.0046a3f3
jmp 0x410c40
mov eax, dword [0x4c67e0]
lea ecx, [esp + 0x94]
mov esi, dword [eax]
push esi
call fcn.0048629f
mov ecx, 0x4c67dc
call fcn.0040467d
test esi, esi
je 0x445304
push ecx
mov ecx, esi
call fcn.00404665
cmp dword [esp + 0x9c], 0
mov dword [0x4c7420], 0
je 0x410cf0
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00409fbd
mov esi, eax
test esi, esi
je 0x410cf0
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 1
call fcn.00409a20
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x12c]
push 0x4a2edc
mov dword [esp + 0x80], 1
mov dword [esp + 0x74], eax
call fcn.00407f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c7270
push eax
lea eax, [esp + 0x134]
push eax
call fcn.00408b13
lea ecx, [esp + 0x12c]
call fcn.00405a64
lea ecx, [esp + 0x70]
call fcn.00409a20
mov eax, dword [esp + 0xa8]
lea ecx, [esp + 0xfc]
push 0x4a2ef4
mov dword [esp + 0x80], 7
mov dword [esp + 0x74], eax
call fcn.00407f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c7270
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00408b13
lea ecx, [esp + 0xfc]
call fcn.00405a64
lea ecx, [esp + 0x70]
call fcn.00409a20
mov eax, dword [esp + 0xac]
lea ecx, [esp + 0x11c]
push 0x4a2f14
mov dword [esp + 0x80], 7
mov dword [esp + 0x74], eax
call fcn.00407f41
push 1
lea eax, [esp + 0x74]
mov ecx, 0x4c7270
push eax
lea eax, [esp + 0x124]
push eax
call fcn.00408b13
lea ecx, [esp + 0x11c]
call fcn.00405a64
mov byte [edi + 0x458], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0040b89c
lea ecx, [esp + 0x70]
mov byte [edi + 0x458], 0
call fcn.00409a20
lea ecx, [esp + 0x98]
call fcn.00405a64
jmp case.default.0x445e10
cmp dword [0x4c691c], 0
jne 0x4454a0
cmp dword [0x4c7420], 0x64
jge 0x4454a0
inc dword [0x4c7420]
push 0
jmp 0x4454a2
push 0xa
call dword [0x48f17c]
jmp 0x410d0a
cmp byte [edi + 0x484], 1
je 0x410d3a
xor eax, eax
mov byte [edi + 0x484], 1
push dword [edi + 0x188]
lea ecx, [esp + 0xf0]
mov dword [esp + 0x68], 0
mov dword [esp + 0xbc], 0x48fb84
mov dword [esp + 0x18], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
call fcn.00469c9f
lea ecx, [edi + 0x184]
call fcn.0045d9e3
mov esi, dword [esp + 0xf0]
lea ecx, [esp + 0x80]
mov dword [esp + 0x88], 0
push dword [esi]
call fcn.00409ac0
mov esi, dword [esi + 4]
mov ecx, esi
call fcn.00409997
push dword [esi + 8]
mov ecx, edi
call fcn.00409fbd
mov edx, eax
mov dword [esp + 0x20], edx
mov ecx, dword [edx + 0x10]
push ecx
call fcn.004071c8
mov dword [edi + 0xf4], ecx
mov esi, 3
cmp dword [edx + 0x14], 0
mov dword [esp + 0x3c], eax
jle 0x4456c2
mov edx, dword [esp + 0xf0]
add edx, 8
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], 0
jne 0x4455cf
mov edx, dword [esp + 0x3c]
mov edx, dword [edx + 4]
mov eax, dword [edx + esi*4 + 4]
cmp word [eax + 8], 0x33
je 0x4455ac
mov ecx, eax
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x445645
mov ecx, dword [esp + 0x18]
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x4455bf
cmp eax, 0x1e
jne 0x445645
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0
je 0x44558e
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + esi*4 + 4]
inc esi
cmp word [eax + 8], 0x41
jne 0x4455ff
mov edx, dword [esp + 0x18]
inc esi
xor ecx, ecx
mov eax, dword [edx + esi*4]
movzx eax, word [eax + 8]
cmp ax, 0x47
jne 0x4455f2
inc ecx
jmp 0x445642
cmp ax, 0x48
jne 0x445638
dec ecx
jns 0x445642
mov edx, dword [esp + 0x24]
push dword [edx]
lea ecx, [esp + 0xbc]
call fcn.00456665
mov ecx, dword [esp + 0x64]
inc esi
mov eax, dword [esp + 0x20]
inc ecx
mov edx, dword [esp + 0x24]
add edx, 4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x24], edx
cmp ecx, dword [eax + 0x14]
jge 0x4456b3
mov eax, dword [esp + 0x3c]
jmp 0x445576
cmp ax, 0x40
jne 0x445642
test ecx, ecx
je 0x4455fb
inc esi
jmp 0x4455e2
mov eax, dword [esp + 0x3c]
mov ecx, edi
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4 + 4]
movsx eax, word [eax + 0xa]
push eax
push 0x91
call fcn.0046a0b5
jmp 0x445683
mov ecx, esi
call fcn.00405a64
push esi
call fcn.0042106c
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
lea ecx, [esp + 0x80]
call fcn.00409df0
lea ecx, [esp + 0xec]
call fcn.004566f4
lea ecx, [esp + 0xb8]
call fcn.004566f4
mov byte [edi + 0x484], 0
jmp 0x410d3a
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x14], eax
push dword [edx + 0x10]
call fcn.00408561
mov eax, dword [esp + 0x20]
mov esi, 3
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], 1
cmp dword [eax + 0x14], 1
jl 0x44591a
mov eax, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x6c], edx
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], dx
jne 0x44572a
mov eax, dword [ecx + esi*4]
mov eax, dword [eax]
cmp eax, 0x24
je 0x445717
cmp eax, 0x1e
jne 0x445718
mov edx, 0x100
inc esi
mov eax, dword [ecx + esi*4]
cmp word [eax + 8], 0
je 0x445703
mov dword [esp + 0x6c], edx
mov dword [esp + 0x4c], esi
mov edi, dword [esp + 8]
lea edx, [esi*4 + 4]
mov dword [esp + 0x24], 1
xor ecx, ecx
mov esi, dword [esp + 0x24]
mov eax, dword [edx + edi]
movzx eax, word [eax + 8]
cmp ax, 0x47
jne 0x445756
inc ecx
jmp 0x44582e
cmp ax, 0x48
jne 0x445820
dec ecx
jns 0x44582e
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x18], eax
jle 0x4458d7
lea eax, [esi + 2]
mov dword [esp + 0x28], 0
mov dword [esp + 8], eax
mov ecx, edi
mov eax, dword [esp + 0x24]
add eax, esi
mov dword [esp + 0x30], 0
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x38], 1
push eax
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x48]
call fcn.0040a000
test eax, eax
js 0x4459bd
mov eax, dword [esp + 0x6c]
or eax, 0x200
push 1
push eax
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
push dword [eax]
call fcn.00408620
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x445800
push ecx
call fcn.00407b3d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x445819.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x445819.6
jmp dword [eax*4 + 0x4460b9]
cmp ax, 0x40
jne 0x44582e
test ecx, ecx
je 0x445767
inc esi
add edx, 4
jmp 0x445743
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x445819.6
push eax
call dword [0x48f45c]
push dword [esp + 0x28]
jmp 0x4458bd
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x445819.6
lea ecx, [eax + 8]
jmp 0x4458b4
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x445819.6
push ecx
call fcn.00408e34
jmp case.0x445819.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.0042106c
add esp, 4
push dword [esp + 0x28]
jmp 0x4458bd
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x445819.6
push ecx
call fcn.004573f0
jmp case.0x445819.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x445819.6
push ecx
call fcn.00457405
jmp case.0x445819.6
mov eax, dword [esp + 0x28]
mov dword [esp + 8], eax
test eax, eax
je case.0x445819.6
mov ecx, eax
call fcn.00405a64
push dword [esp + 8]
call fcn.0042106c
add esp, 4
mov dword [esp + 0x34], 1
mov dword [esp + 0x28], 0
jmp 0x4458f4
mov eax, dword [esp + 0x14]
or edx, 0x200
push 1
push edx
push dword [eax]
mov eax, dword [esp + 0x14]
mov eax, dword [eax + esi*4]
push dword [eax]
call fcn.00408620
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
inc eax
add dword [esp + 0x14], 4
add esi, eax
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x4c], esi
mov dword [esp + 0x18], eax
cmp eax, dword [ecx + 0x14]
jle 0x4456e9
push 0x4b9a3c
lea ecx, [esp + 0x140]
call fcn.00407f41
mov esi, dword [esp + 0x80]
xor eax, eax
cmp dword [esp + 0x8c], 6
push 1
setne al
dec eax
and eax, esi
push 0
push eax
lea eax, [esp + 0x148]
push eax
call fcn.00408620
lea ecx, [esp + 0x13c]
call fcn.00405a64
mov eax, dword [esp + 0x20]
mov ecx, edi
push 0
push 0
mov eax, dword [eax + 0x10]
inc eax
push eax
call fcn.0040b89c
mov ecx, 0x4c7280
call fcn.0040843f
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x44599a
push ecx
call fcn.00407b3d
mov dword [esp + 0x88], 0
mov eax, dword [esp + 0x8c]
cmp eax, 5
jl case.0x4459b6.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x4459b6.6
jmp dword [eax*4 + 0x4460e5]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4459d3
push ecx
call fcn.00407b3d
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x34]
cmp eax, 5
jl case.0x4459ec.6
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x4459ec.6
jmp dword [eax*4 + 0x446111]
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x4459ec.6
push eax
call dword [0x48f45c]
push dword [esp + 0x28]
jmp 0x44566b
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x4459ec.6
lea ecx, [esi + 8]
jmp 0x445665
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4459ec.6
push ecx
call fcn.00408e34
jmp case.0x4459ec.6
mov eax, dword [esp + 0x28]
push dword [eax + 4]
call fcn.0042106c
add esp, 4
push dword [esp + 0x28]
jmp 0x44566b
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4459ec.6
push ecx
call fcn.004573f0
jmp case.0x4459ec.6
mov ecx, dword [esp + 0x28]
test ecx, ecx
je case.0x4459ec.6
push ecx
call fcn.00457405
jmp case.0x4459ec.6
mov esi, dword [esp + 0x28]
test esi, esi
je case.0x4459ec.6
jmp 0x445663
test esi, esi
je case.0x4459b6.6
push esi
call dword [0x48f45c]
jmp 0x445ae9
test esi, esi
je case.0x4459b6.6
lea ecx, [esi + 8]
jmp 0x445ae4
test esi, esi
je case.0x4459b6.6
push ecx
mov ecx, esi
call fcn.00408e34
jmp case.0x4459b6.6
push dword [esi + 4]
call fcn.0042106c
add esp, 4
jmp 0x445ae9
test esi, esi
je case.0x4459b6.6
push ecx
mov ecx, esi
call fcn.004573f0
jmp case.0x4459b6.6
test esi, esi
je case.0x4459b6.6
push ecx
mov ecx, esi
call fcn.00457405
jmp case.0x4459b6.6
test esi, esi
je case.0x4459b6.6
mov ecx, esi
call fcn.00405a64
push esi
call fcn.0042106c
add esp, 4
lea ecx, [esp + 0xec]
mov dword [esp + 0x8c], 1
mov dword [esp + 0x80], 0
call fcn.004566f4
lea ecx, [esp + 0xb8]
call fcn.004566f4
mov byte [edi + 0x484], 0
jmp case.default.0x445e10
cmp byte [edi + 0x459], 1
je 0x410d47
lea ecx, [esp + 0x98]
call fcn.004077c7
lea eax, [esp + 0x94]
mov ecx, 0x4c6890
push eax
call fcn.004628f7
test al, al
je 0x445c38
cmp dword [esp + 0x9c], 0
je 0x445b45
lea eax, [esp + 0x98]
mov ecx, edi
push eax
call fcn.00409fbd
mov esi, eax
test esi, esi
je 0x445b45
lea ecx, [esp + 0xd8]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 1
call fcn.00409a20
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x10c]
push 0x4a2f34
mov dword [esp + 0xe8], 1
mov dword [esp + 0xdc], eax
call fcn.00407f41
push 1
lea eax, [esp + 0xdc]
mov ecx, 0x4c7270
push eax
lea eax, [esp + 0x114]
push eax
call fcn.00408b13
lea ecx, [esp + 0x10c]
call fcn.00405a64
mov byte [edi + 0x459], 1
mov ecx, edi
mov eax, dword [esi + 0x10]
push 0
push 1
inc eax
push eax
call fcn.0040b89c
lea ecx, [esp + 0xd8]
mov byte [edi + 0x459], 0
call fcn.00409a20
lea ecx, [esp + 0x98]
call fcn.00405a64
jmp case.default.0x445e10
lea ecx, [esp + 0x98]
call fcn.00405a64
jmp 0x410d47
push 0xa
push dword [edi + 0x444]
call dword [0x48f16c]
mov dword [esp + 0x48], eax
cmp eax, 0x102
je case.default.0x445e10
lea eax, [esp + 0x48]
push eax
push dword [edi + 0x444]
call dword [0x48f290]
push dword [edi + 0x444]
call dword [0x48f35c]
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
jmp 0x445ca6
push eax
call dword [0x48f35c]
mov dword [edi + 0x448], 0
mov dword [esp + 8], 0
push ecx
lea eax, [esp + 0xc]
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041ff13
jmp 0x411098
lea ecx, [edi + 0x168]
call int.0047c2f7
mov ecx, eax
call fcn.00456543
test al, al
jne 0x445cf6
mov eax, dword [esp + 8]
mov ecx, edi
movsx eax, word [eax + 0xa]
push eax
push 0xa7
call fcn.0046a0b5
lea ecx, [esp + 0x50]
call fcn.00409df0
jmp case.default.0x445e10
lea ecx, [edi + 0x168]
call int.0047c2f7
push eax
lea eax, [esp + 0x24]
mov ecx, edi
push eax
push esi
call fcn.0047b851
jmp 0x410f06
push 0xffffffffffffffff
lea eax, [esp + 0x54]
mov ecx, edi
push eax
lea eax, [esp + 0x28]
push eax
push esi
call fcn.0040a000
jmp 0x410f06
movsx eax, word [eax + 0xa]
mov ecx, edi
push eax
push 0x72
call fcn.0046a0b5
lea ecx, [esp + 0x50]
call fcn.00409df0
jmp case.default.0x445e10
push dword [esi]
call fcn.0042106c
add esp, 4
push dword [esi + 0xc]
call fcn.0042106c
add esp, 4
jmp 0x410f54
test edx, edx
je case.0x4110f5.6
push edx
call dword [0x48f45c]
push dword [esp + 0x50]
jmp 0x445de8
test edx, edx
je case.0x4110f5.6
lea ecx, [edx + 8]
jmp 0x445ddf
test edx, edx
je case.0x4110f5.6
push ecx
mov ecx, edx
call fcn.00408e34
jmp case.0x4110f5.6
push dword [edx + 4]
call fcn.0042106c
add esp, 4
push dword [esp + 0x50]
jmp 0x445de8
test edx, edx
je case.0x4110f5.6
push ecx
mov ecx, edx
call fcn.004573f0
jmp case.0x4110f5.6
test edx, edx
je case.0x4110f5.6
push ecx
mov ecx, edx
call fcn.00457405
jmp case.0x4110f5.6
test edx, edx
je case.0x4110f5.6
mov ecx, edx
call fcn.00405a64
push dword [esp + 0x14]
call fcn.0042106c
add esp, 4
jmp case.0x4110f5.6
mov dword [edi + 0xf8], 1
jmp case.default.0x445e10
sub eax, 3
cmp eax, 3
ja case.default.0x445e10
jmp dword [eax*4 + 0x44613d]
mov ecx, edi
call fcn.004861ac
jmp 0x445e49
mov ecx, edi
call fcn.004861ac
jmp 0x445e32
push 1
mov ecx, edi
call fcn.0040b93d
mov esi, eax
test esi, esi
js 0x445e4f
jg case.default.0x445e10
jmp 0x445e88
push 1
mov ecx, edi
call fcn.0040b93d
mov esi, eax
test esi, esi
jns 0x445e7e
mov eax, esi
neg eax
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.00456aa3
push ecx
lea eax, [esp + 0xc]
mov dword [esp + 0xc], 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041ff13
test esi, esi
je case.default.0x445e10
test esi, esi
jle 0x445f01
mov eax, dword [edi + 0xf8]
cmp eax, 5
je 0x445e98
cmp eax, 3
jne 0x445f01
mov eax, dword [edi + 0x1f0]
lea ecx, [esp + 0xc8]
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 1
mov esi, dword [eax]
call fcn.00409a20
push 0
lea eax, [esp + 0xcc]
mov dword [esp + 0xd8], 7
push eax
mov eax, dword [edi]
mov dword [esp + 0xd0], esi
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.00456a50
lea ecx, [esp + 0xc8]
call fcn.00409a20
mov ecx, dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call fcn.004654e6
jmp case.default.0x445e10
push 0xa
call dword [0x48f17c]
cmp dword [edi + 0x43c], 0
je 0x445f5f
mov ecx, dword [edi + 0x440]
call fcn.00420719
test edx, edx
jl 0x445f5f
jg 0x445f4c
cmp eax, dword [edi + 0x43c]
jb 0x445f5f
mov eax, dword [edi + 0x448]
test eax, eax
je 0x445c9e
jmp 0x445c8d
mov eax, dword [edi + 0xf8]
xor esi, esi
mov byte [esp + 0x1f], 0
mov dword [esp + 8], esi
cmp eax, 8
jne 0x445f9d
lea eax, [esp + 0x1f]
push eax
lea ecx, [edi + 0x42c]
lea edx, [esp + 0xc]
call fcn.00463e91
add esp, 4
cmp byte [esp + 0x1f], 1
jne case.default.0x445e10
mov esi, dword [esp + 8]
jmp 0x445fa6
cmp eax, 9
jne case.default.0x445e10
mov ecx, dword [edi + 0x448]
mov eax, 0xcccccccc
mov dword [esp + 0x40], eax
test ecx, ecx
je 0x445fff
lea eax, [esp + 0x40]
push eax
push ecx
call dword [0x48f290]
cmp dword [esp + 0x40], 0x103
jne 0x445fe5
push 0
push dword [edi + 0x448]
call dword [0x48f16c]
test eax, eax
jne case.default.0x445e10
push dword [edi + 0x448]
call dword [0x48f35c]
mov eax, dword [esp + 0x40]
mov dword [edi + 0x448], 0
cmp dword [edi + 0xf8], 8
jne 0x446032
mov dword [esp + 8], esi
fild dword [esp + 8]
test esi, esi
jns 0x44601a
fadd qword [0x4bbac8]
push ecx
lea eax, [esp + 0xc]
push eax
mov eax, dword [edi]
fstp qword [esp + 0x10]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0047cc41
jmp 0x446041
push 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041ff61
push dword [edi + 0x2f4]
mov byte [edi + 0x144], 1
mov dword [edi + 0xf8], 0
call dword [0x48f17c]
jmp case.default.0x445e10
push ecx
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0
push eax
mov eax, dword [edi]
mov ecx, dword [eax + 4]
add ecx, edi
call fcn.0041ff13
jmp 0x410e44
lea eax, [esp + 0x14c]
push eax
call dword [0x48f6ec]
lea eax, [esp + 0x14c]
push eax
call dword [0x48f6e8]
push 0
push 0
push 0
lea eax, [esp + 0x158]
push eax
call esi
test eax, eax
jg 0x446082
jmp 0x410e61