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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x2d4
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x2b8]
test eax, eax
push esi
push edi
je 0x4165fc
mov eax, dword [ebx + 0x3e0]
test eax, eax
jne 0x4165fc
cmp byte [ebx + 0x384], 3
je 0x414ffd
call fcn.00411ea0
test eax, eax
je 0x414ffd
mov al, byte [ebx + 0x384]
test al, al
je 0x4165fc
mov eax, dword [ebx + 0x188]
test eax, eax
je 0x4165fc
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
je 0x4165fc
mov eax, dword [ebx + 0xcc]
push eax
call fcn.00410490
mov esi, eax
test esi, esi
mov dword [esp + 0x14], esi
je 0x4165fc
mov eax, dword [ebx + 0xd4]
test eax, eax
je 0x41506b
mov ecx, dword [ebx + 0xd0]
push ecx
mov ecx, dword [ebx + 0xc0]
call fcn.00410490
test eax, eax
je 0x415079
mov edx, dword [ebx + 0xd8]
push eax
mov eax, dword [ebx + 0xc8]
push edx
push eax
mov ecx, esi
call fcn.00552cb0
jmp 0x415079
mov ecx, dword [ebx + 0xc8]
push ecx
mov ecx, esi
call fcn.00552910
movzx eax, byte [ebx + 0x182]
cmp eax, 4
mov dword [esp + 0x10], 0x3f800000
ja case.default.0x41508d
jmp dword [eax*4 + 0x416604]
mov dword [esp + 0x10], 0x3f75c28f
jmp case.default.0x41508d
mov dword [esp + 0x10], 0x3f7ae148
jmp case.default.0x41508d
mov dword [esp + 0x10], 0x3f800000
jmp case.default.0x41508d
mov dword [esp + 0x10], 0x3f828f5c
jmp case.default.0x41508d
mov dword [esp + 0x10], 0x3f851eb8
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 5
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 6
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0x12
push 1
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 2
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 3
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 5
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 3
push 6
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 3
push 4
push 1
push eax
call dword [ecx + 0x10c]
cmp byte [ebx + 0x285], 2
mov dword [esp + 0x18], 0
jae 0x4151cf
mov eax, dword [ebx + 0x288]
test eax, eax
je 0x415200
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0x64ffffff
push 0x3c
push eax
mov dword [esp + 0x24], 1
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
jmp 0x415236
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 0x16
push eax
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0xffffffffffffffff
push 0x3c
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0x1b
push eax
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [esp + 0x10]
push eax
push eax
push eax
mov ecx, 0x2209408
call fcn.00410470
mov al, byte [ebx + 0x384]
test al, al
jne 0x415279
lea edx, [ebx + 0x28]
push edx
lea eax, [ebx + 0x1c]
push eax
lea ecx, [ebx + 0x10]
push ecx
mov ecx, 0x2209408
call fcn.005426e0
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0x2209488
push 3
push eax
call dword [edx + 0xb4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0x2209448
push 2
push eax
call dword [ecx + 0xb4]
push 0x2209448
push 0x2209408
lea edx, [esp + 0xe8]
push edx
call fcn.005e4db8
push 0x2209488
mov ecx, 0x10
lea esi, [esp + 0xe4]
lea edi, [esp + 0x44]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [esp + 0x128]
push ecx
call fcn.005e4db8
lea edx, [esp + 0x160]
push edx
lea eax, [esp + 0x224]
mov ecx, 0x10
lea esi, [esp + 0x124]
lea edi, [esp + 0x164]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.005e5009
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
lea edx, [esp + 0x224]
push edx
push 1
push eax
call dword [ecx + 0x178]
push 0x2209408
push 0
lea eax, [esp + 0x1e8]
push eax
call fcn.005e52de
mov ecx, dword [0x22094ec]
mov edx, dword [0x22094f0]
mov eax, dword [0x22094f4]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0x1e0]
mov dword [esp + 0x84], edx
push ecx
lea edx, [esp + 0x84]
mov dword [esp + 0x8c], eax
push edx
mov eax, edx
push eax
mov dword [esp + 0x98], 0
call fcn.005e4b32
lea ecx, [esp + 0x80]
push ecx
mov edx, ecx
push edx
call fcn.005e484f
fld dword [0x22094c8]
fsub dword [ebx + 0x10]
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
fld dword [0x22094cc]
mov dword [esp + 0x30], eax
fsub dword [ebx + 0x14]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
fld dword [0x22094d0]
mov dword [esp + 0x34], ecx
fsub dword [ebx + 0x18]
fstp dword [esp + 0x2c]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x90], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 0x94], ecx
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x9c], edx
push ecx
mov edx, ecx
push edx
mov dword [esp + 0xa8], 0
call fcn.005e4b32
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x84]
push edx
push 5
push eax
call dword [ecx + 0x178]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x94]
push edx
push 6
push eax
call dword [ecx + 0x178]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 0x2209408
push 0x55
push eax
call dword [ecx + 0x178]
push 0x2209448
push 0
lea edx, [esp + 0x2a8]
push edx
call fcn.005e52de
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x2a4]
push edx
push 0x59
push eax
call dword [ecx + 0x178]
mov eax, dword [0x71986c]
test eax, eax
je 0x415515
mov eax, dword [0x71931c]
mov cl, byte [eax + 0x1d0]
test cl, cl
je 0x415515
mov dword [esp + 0x30], 0x3f800000
mov dword [esp + 0x34], 0x3f800000
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x3f800000
cmp dword [eax], 1
jne 0x4154e9
mov cl, byte [eax + 0x304]
test cl, cl
jne 0x4154e1
mov dword [esp + 0x34], 0xbf800000
mov dword [esp + 0x38], 0xbccccccd
jmp 0x4154e9
mov dword [esp + 0x38], 0x3d0f5c29
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x34]
push edx
push 0x5f
push eax
call dword [ecx + 0x178]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 0x98
push eax
call dword [ecx + 0xe4]
mov ecx, dword [0x2209768]
push 1
call fcn.00548090
mov edi, dword [esp + 0x18]
lea esi, [ebx + 0x58]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], esi
cmp dword [esi], 0
mov ecx, dword [0x2209768]
jne 0x415544
push 1
jmp 0x415546
push 2
call fcn.00548160
mov ecx, dword [esi + 0x3c]
test ecx, ecx
jne 0x415564
mov eax, dword [0x2209400]
mov edx, dword [eax]
push ecx
push ecx
push eax
call dword [edx + 0x104]
jmp 0x415585
call fcn.0053dc20
cmp dword [esi], 0
je 0x415585
mov edx, dword [0x70b9d8]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push edx
push 1
push eax
call dword [ecx + 0x104]
mov eax, dword [esi + 0x24]
test eax, eax
mov dword [esp + 0x10], eax
je 0x4159c0
mov ecx, dword [eax + 0x30]
xor esi, esi
test ecx, ecx
jle 0x415626
mov edi, 0xa
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x4165fc
movzx eax, byte [eax + esi]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 8]
mov edx, eax
imul edx, edx, 0x118
lea edx, [edx + ecx + 0xc0]
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [ecx + 0x2c]
shl eax, 6
add eax, edx
push eax
lea edx, [esp + 0xe8]
push edx
call fcn.005e4db8
lea eax, [esp + 0xe0]
push eax
mov ecx, eax
push ecx
call fcn.005e5009
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 3
lea ecx, [esp + 0xe4]
push ecx
push edi
push eax
call dword [edx + 0x178]
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x30]
inc esi
add edi, 3
cmp esi, eax
jl 0x4155a6
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [0x2209400]
test ecx, ecx
mov ecx, dword [eax]
push 0
jne 0x4157d8
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 1
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 4
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0x1b
push eax
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 1
push eax
call dword [edx + 0x104]
test edi, edi
jne 0x415722
fld dword [ebx + 0x2ec]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 5
jnp 0x415722
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 5
push edi
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push edi
push 6
push edi
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 4
push edi
push eax
call dword [ecx + 0x10c]
jmp 0x415968
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 5
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 3
push 6
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
fld dword [ebx + 0x2ec]
fmul dword [0x6bc8c4]
mov esi, dword [0x2209400]
mov edi, dword [esi]
call fcn.005cd414
shl eax, 0x18
or eax, 0xffffff
push eax
push 0x3c
push esi
call dword [edi + 0xe4]
mov edi, dword [esp + 0x18]
test edi, edi
je 0x415968
fld dword [ebx + 0x2ec]
fcomp dword [0x6bc8c0]
fnstsw ax
test ah, 0x41
jne 0x415968
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0x64ffffff
push 0x3c
push eax
call dword [edx + 0xe4]
jmp 0x415968
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 2
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0x12
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 2
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 3
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 5
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 3
push 6
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 3
push 4
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0x1b
push eax
call dword [edx + 0xe4]
test edi, edi
jne 0x4158fa
fld dword [ebx + 0x2ec]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 5
jp 0x415968
fld dword [ebx + 0x2ec]
mov eax, dword [0x2209400]
fmul dword [0x6bc8c4]
mov esi, dword [eax]
call fcn.005cd414
mov ecx, dword [0x2209400]
shl eax, 0x18
or eax, 0xffffff
push eax
push 0x3c
push ecx
call dword [esi + 0xe4]
test edi, edi
je 0x415956
fld dword [ebx + 0x2ec]
fcomp dword [0x6bc8c0]
fnstsw ax
test ah, 0x41
jne 0x415956
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0x64ffffff
push 0x3c
push eax
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
mov edx, dword [0x2209768]
mov eax, dword [edx + 4]
test eax, eax
jne 0x4159b3
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0x112
push eax
call dword [ecx + 0x164]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 1
push eax
call dword [edx + 0x104]
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
push eax
mov ecx, esi
call fcn.00550fb0
mov ecx, esi
call fcn.005519c0
jmp 0x4159bc
mov ecx, dword [esp + 0x10]
call fcn.00551960
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
inc eax
add esi, 4
cmp eax, 6
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
jl 0x415535
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 2
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 2
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
fld dword [ebx + 0x2ec]
fcomp dword [0x6bc4dc]
push 0
fnstsw ax
test ah, 5
mov eax, dword [0x2209400]
jp 0x415ade
mov ecx, dword [eax]
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 0x1b
push eax
call dword [edx + 0xe4]
push 0
jmp 0x415aeb
mov edx, dword [eax]
push 0x1b
push eax
call dword [edx + 0xe4]
push 1
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 1
push eax
call dword [edx + 0x104]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov ecx, dword [0x2209768]
push 0
call fcn.00548090
mov eax, dword [ebx + 0xb8]
test eax, eax
mov ecx, 0x10
mov esi, 0x2209408
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
je 0x415bc9
mov eax, dword [0x7198f0]
test eax, eax
je 0x415bc9
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x415bc9
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0x112
push eax
call dword [ecx + 0x164]
mov ecx, dword [ebx + 0xac]
test ecx, ecx
je 0x415b99
push 0
call fcn.0053dc50
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xb8]
push edx
call fcn.00550fb0
mov ecx, dword [ebx + 0xb8]
call fcn.005519c0
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 1
push 0x89
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 3
push 0x16
push eax
call dword [edx + 0xe4]
mov eax, dword [ebx + 0xdc]
cmp eax, 8
je 0x415bf2
cmp eax, 9
je 0x415bf2
mov ecx, ebx
call fcn.00413f40
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xa0]
push eax
push esi
mov ecx, ebx
call fcn.00414180
lea ecx, [esp + 0xa0]
push ecx
push esi
mov ecx, ebx
call fcn.00414420
mov al, byte [ebx + 0x191]
cmp al, 0xb
mov byte [esp + 0x10], 1
je 0x415c29
cmp al, 0x3b
jne 0x415c4a
cmp dword [ebx + 0xcc], 0x38
jne 0x415c4a
fld dword [ebx + 0xc8]
fcomp dword [0x6bc8bc]
fnstsw ax
test ah, 0x41
jne 0x415c4a
mov byte [esp + 0x10], 0
mov eax, dword [0x71986c]
test eax, eax
je 0x415c7d
mov ecx, dword [0x71931c]
mov al, byte [ecx + 0x1d0]
test al, al
je 0x415c7d
call fcn.0053e6d0
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 0x98
push eax
call dword [edx + 0xe4]
mov al, byte [esp + 0x10]
test al, al
je 0x415dbe
cmp dword [ebx + 0xdc], 2
je 0x415cb5
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x415cb0
mov eax, dword [ebx + 0xe4]
test eax, eax
jne 0x415cb0
mov al, byte [ebx + 0x384]
test al, al
je 0x415cb5
mov byte [esp + 0x10], 0
cmp dword [ebx + 0xcc], 0x74
jge 0x415dbe
mov al, byte [esp + 0x10]
test al, al
je 0x415dbe
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov esi, dword [esp + 0x18]
test esi, esi
sete al
mov byte [esp + 0x10], al
mov eax, dword [ebx + ecx*4 + 0x74]
test eax, eax
je 0x415dac
cmp ecx, 1
jne 0x415d23
mov eax, dword [ebx + 0x78]
mov cl, byte [eax + 0x4c]
cmp cl, 5
je 0x415d1a
cmp cl, 0x31
je 0x415d1a
cmp cl, 0x32
je 0x415d1a
cmp cl, 0xf
je 0x415d1a
cmp cl, 0x41
je 0x415d1a
movzx edx, byte [ebx + 0x2a2]
jmp 0x415d79
movzx ecx, byte [ebx + 0x2a3]
jmp 0x415d44
movzx ecx, byte [eax + 0x4c]
add ecx, 0xfffffff3
cmp ecx, 0x33
ja case.0x415d36.15
movzx ecx, byte [ecx + 0x416620]
jmp dword [ecx*4 + 0x416618]
movzx ecx, byte [ebx + 0x2a1]
mov edx, dword [esp + 0x10]
push edx
mov edx, dword [ebx + 0xc8]
push ecx
push edx
mov edx, dword [ebx + 0xdc]
sub esp, 0x40
mov edi, esp
mov ecx, 0x10
lea esi, [esp + 0xec]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x60]
push ecx
push edx
jmp 0x415da5
movzx edx, byte [ebx + 0x2a0]
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, dword [ebx + 0xc8]
push edx
mov edx, dword [esp + 0x1c]
push ecx
sub esp, 0x40
mov edi, esp
lea esi, [esp + 0xec]
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0xdc]
push edx
push ecx
mov ecx, eax
call fcn.004288b0
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, 2
mov dword [esp + 0x20], ecx
jl 0x415cd4
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x41658c
mov eax, dword [ebx + 0xb4]
test eax, eax
je 0x41658c
mov eax, dword [0x7198f0]
test eax, eax
je 0x41658c
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x41658c
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
fld dword [ebx + 0x2c0]
fcomp dword [0x6bc8b8]
fnstsw ax
test ah, 0x41
jne 0x415fda
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x415f77
xor eax, eax
mov dword [esp + 0x1c], eax
mov ecx, dword [ebx + 0xb0]
cmp byte [eax + ecx + 0x2c], 1
jne 0x415f77
mov esi, dword [eax + ecx + 0x34]
test esi, esi
mov ecx, dword [eax + ecx + 0x30]
mov dword [esp + 0x20], ecx
jl 0x415f65
test ecx, ecx
jl 0x415f65
mov edx, dword [ebx + 0xb0]
mov eax, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x7c], 0x3f800000
mov dword [esp + 0x68], 0x3f800000
mov dword [esp + 0x54], 0x3f800000
mov dword [esp + 0x40], 0x3f800000
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
push ecx
push edx
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.005e574f
imul esi, esi, 0x118
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea esi, [esi + eax + 0xc0]
mov ecx, 0x10
lea edi, [esp + 0x160]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x160]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x128]
push eax
call fcn.005e4db8
mov ecx, 0x10
lea esi, [esp + 0x120]
mov edi, 0x2209604
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00581040
mov eax, dword [esp + 0x1c]
add eax, 0x18
cmp eax, 0x1e0
mov dword [esp + 0x1c], eax
jl 0x415e33
mov ecx, 0x10
lea esi, [esp + 0xa0]
mov edi, 0x2209408
rep movsd dword es:[edi], dword [esi]
push 0x2209408
mov ecx, 0x2209408
call fcn.00542640
mov ecx, dword [ebx + 0xac]
test ecx, ecx
je 0x415faa
push 0
call fcn.0053dc50
mov edx, dword [ebx + 0xbc]
mov ecx, dword [ebx + 0xb4]
push edx
call fcn.00581d70
mov ecx, dword [ebx + 0xbc]
test ecx, ecx
je 0x41653b
mov eax, dword [ecx + 4]
test eax, eax
je 0x41653b
jmp 0x416536
cmp dword [ebx + 0x25c], 2
je 0x416314
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x416176
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x416000
mov ecx, dword [ebx + 0xb0]
cmp byte [eax + ecx + 0x2c], 1
jne 0x416176
mov esi, dword [eax + ecx + 0x34]
test esi, esi
mov ecx, dword [eax + ecx + 0x30]
mov dword [esp + 0x20], ecx
jl 0x416164
test ecx, ecx
jl 0x416164
mov edx, dword [ebx + 0xb0]
mov eax, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x7c], 0x3f800000
mov dword [esp + 0x68], 0x3f800000
mov dword [esp + 0x54], 0x3f800000
mov dword [esp + 0x40], 0x3f800000
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x38]
push ecx
push edx
push eax
lea ecx, [esp + 0x4c]
push ecx
call fcn.005e574f
imul esi, esi, 0x118
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 8]
lea esi, [esi + eax + 0xc0]
mov ecx, 0x10
lea edi, [esp + 0x160]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x160]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x128]
push eax
call fcn.005e4db8
mov ecx, 0x10
lea esi, [esp + 0x120]
lea edi, [esp + 0x260]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xa0]
push ecx
lea edx, [esp + 0x264]
push edx
lea eax, [esp + 0x1a8]
push eax
call fcn.005e4db8
mov ecx, 0x10
lea esi, [esp + 0x1a0]
mov edi, 0x2209604
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00581040
mov eax, dword [esp + 0x1c]
add eax, 0x18
cmp eax, 0x1e0
mov dword [esp + 0x1c], eax
jl 0x416000
mov eax, dword [esp + 0x14]
mov ecx, 0x10
lea esi, [esp + 0xa0]
mov edi, 0x2209604
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 8]
lea edx, [esp + 0xa0]
push edx
add ecx, 0x520
push ecx
lea edx, [esp + 0x1a8]
push edx
call fcn.005e4db8
mov ecx, 0x10
lea esi, [esp + 0x1a0]
lea edi, [esp + 0xe0]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xe4]
push ecx
mov ecx, 0x2209408
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0x3f800000
call fcn.005417c0
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.005e40eb
fld dword [esp + 0x24]
fmul dword [0x6bb5f8]
fst dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [0x6bb5f8]
fst dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [0x6bb5f8]
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
fxch st(1)
push edx
fstp dword [0x2209674]
mov dword [0x220967c], ecx
mov ecx, dword [esp + 0x28]
fstp dword [0x2209678]
push eax
push ecx
mov ecx, 0x85d178
call fcn.0054e300
call fcn.005cdacd
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
push ecx
mov ecx, 0x85d178
fmul dword [0x6bbc78]
fmul dword [0x6bc8b4]
fstp dword [esp]
call fcn.0054e320
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push edx
push eax
push ecx
mov ecx, 0x71d0f0
call fcn.00410580
fstp dword [0x2209644]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xb4]
push edx
call fcn.00581030
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
push eax
push ecx
mov ecx, dword [ebx + 0xb4]
push edx
call fcn.00581ae0
fld dword [ebx + 0x2c0]
fcomp dword [0x6bc8b0]
fnstsw ax
test ah, 0x41
jne 0x416300
mov eax, dword [0x719a54]
push 1
push eax
jmp 0x416309
mov ecx, dword [0x719a54]
push 0
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00584ba0
mov ecx, 0x2209408
call fcn.005425f0
mov ecx, dword [ebx + 0xac]
test ecx, ecx
je 0x41632f
push 0
call fcn.0053dc50
mov ecx, dword [ebx + 0xb4]
call fcn.00581b30
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x41653b
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x41653b
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00582280
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov edx, dword [esp + 0x14]
fstp dword [eax + 0x18]
mov dword [eax + 0x14], edx
fstp dword [eax + 0x1c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebx + 0xb4]
lea edx, [esp + 0x1c]
push edx
call fcn.00582340
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fstp dword [eax + 0x24]
mov dword [eax + 0x20], ecx
fstp dword [eax + 0x28]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.005822e0
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov edx, dword [esp + 0x14]
fstp dword [eax + 0x30]
mov dword [eax + 0x2c], edx
fstp dword [eax + 0x34]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebx + 0xb4]
lea edx, [esp + 0x1c]
push edx
call fcn.005823a0
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fstp dword [eax + 0x3c]
mov dword [eax + 0x38], ecx
fstp dword [eax + 0x40]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.005824a0
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov edx, dword [esp + 0x14]
fstp dword [eax + 0x48]
mov dword [eax + 0x44], edx
fstp dword [eax + 0x4c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ecx, dword [ebx + 0xb4]
call fcn.005824f0
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fstp dword [eax + 0x54]
mov dword [eax + 0x50], ecx
fstp dword [eax + 0x58]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00582400
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov edx, dword [esp + 0x14]
fstp dword [eax + 0x60]
mov dword [eax + 0x5c], edx
fstp dword [eax + 0x64]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebx + 0xb4]
lea edx, [esp + 0x1c]
push edx
call fcn.00582450
fld dword [esp + 0x18]
mov eax, dword [ebx + 0xbc]
fld dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
fstp dword [eax + 0x6c]
mov dword [eax + 0x68], ecx
fstp dword [eax + 0x70]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.005810b0
fld dword [esp + 0x18]
fld dword [esp + 0x10]
mov eax, dword [ebx + 0xbc]
mov edx, dword [esp + 0x14]
fstp dword [eax + 0x78]
mov dword [eax + 0x74], edx
fstp dword [eax + 0x7c]
mov ecx, dword [ebx + 0xbc]
call fcn.0055a4d0
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 0
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 2
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x2209400]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x2209400]
mov edx, dword [eax]
push 1
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x71986c]
test eax, eax
je 0x4165aa
mov ecx, dword [0x71931c]
mov al, byte [ecx + 0x1d0]
test al, al
je 0x4165aa
call fcn.0053e660
mov eax, dword [ebx + 0x3e4]
test eax, eax
je 0x4165fc
push eax
mov ecx, 0x71d0f0
call fcn.00447a40
mov esi, eax
test esi, esi
je 0x4165fc
push ebx
mov ecx, esi
call fcn.0040fd90
test eax, eax
je 0x4165fc
mov edi, dword [esi + 0x3e0]
mov ecx, esi
mov byte [esi + 0x384], 3
mov dword [esi + 0x3e0], 0
call fcn.00414fb0
mov dword [esi + 0x3e0], edi
mov byte [esi + 0x384], 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret