Function at 0x413360
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 + 0x2ac]
test eax, eax
push esi
push edi
je 0x41499c
mov eax, dword [ebx + 0x3cc]
test eax, eax
jne 0x41499c
cmp byte [ebx + 0x378], 3
je 0x4133ad
call fcn.0040fef0
test eax, eax
je 0x4133ad
mov al, byte [ebx + 0x378]
test al, al
je 0x41499c
mov eax, dword [ebx + 0x17c]
test eax, eax
je 0x41499c
mov ecx, dword [ebx + 0xc0]
test ecx, ecx
je 0x41499c
mov eax, dword [ebx + 0xcc]
push eax
call fcn.0040e160
mov esi, eax
test esi, esi
mov dword [esp + 0x14], esi
je 0x41499c
mov eax, dword [ebx + 0xd4]
test eax, eax
je 0x41341b
mov ecx, dword [ebx + 0xd0]
push ecx
mov ecx, dword [ebx + 0xc0]
call fcn.0040e160
test eax, eax
je 0x413429
mov edx, dword [ebx + 0xd8]
push eax
mov eax, dword [ebx + 0xc8]
push edx
push eax
mov ecx, esi
call fcn.0053c8a0
jmp 0x413429
mov ecx, dword [ebx + 0xc8]
push ecx
mov ecx, esi
call fcn.0053c500
movzx eax, byte [ebx + 0x176]
cmp eax, 4
mov dword [esp + 0x10], 0x3f800000
ja case.default.0x41343d
jmp dword [eax*4 + 0x4149a4]
mov dword [esp + 0x10], 0x3f75c28f
jmp case.default.0x41343d
mov dword [esp + 0x10], 0x3f7ae148
jmp case.default.0x41343d
mov dword [esp + 0x10], 0x3f800000
jmp case.default.0x41343d
mov dword [esp + 0x10], 0x3f828f5c
jmp case.default.0x41343d
mov dword [esp + 0x10], 0x3f851eb8
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 5
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 6
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0x12
push 1
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 2
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 3
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 5
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 3
push 6
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 3
push 4
push 1
push eax
call dword [ecx + 0x10c]
cmp byte [ebx + 0x279], 2
mov dword [esp + 0x18], 0
jae 0x41357f
mov eax, dword [ebx + 0x27c]
test eax, eax
je 0x4135b0
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0x64ffffff
push 0x3c
push eax
mov dword [esp + 0x24], 1
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
jmp 0x4135e6
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 0x16
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0xffffffffffffffff
push 0x3c
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 0x1b
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
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, 0x21f3fa0
call fcn.0040e140
mov al, byte [ebx + 0x378]
test al, al
jne 0x413629
lea edx, [ebx + 0x28]
push edx
lea eax, [ebx + 0x1c]
push eax
lea ecx, [ebx + 0x10]
push ecx
mov ecx, 0x21f3fa0
call fcn.0052bbb0
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0x21f4020
push 3
push eax
call dword [edx + 0xb4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0x21f3fe0
push 2
push eax
call dword [ecx + 0xb4]
push 0x21f3fe0
push 0x21f3fa0
lea edx, [esp + 0xe8]
push edx
call fcn.005d268c
push 0x21f4020
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.005d268c
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.005d28dd
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
lea edx, [esp + 0x224]
push edx
push 1
push eax
call dword [ecx + 0x178]
push 0x21f3fa0
push 0
lea eax, [esp + 0x1e8]
push eax
call fcn.005d2bb2
mov ecx, dword [0x21f4084]
mov edx, dword [0x21f4088]
mov eax, dword [0x21f408c]
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.005d2406
lea ecx, [esp + 0x80]
push ecx
mov edx, ecx
push edx
call fcn.005d2123
fld dword [0x21f4060]
fsub dword [ebx + 0x10]
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x24]
fld dword [0x21f4064]
mov dword [esp + 0x30], eax
fsub dword [ebx + 0x14]
fstp dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
fld dword [0x21f4068]
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.005d2406
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x84]
push edx
push 5
push eax
call dword [ecx + 0x178]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x94]
push edx
push 6
push eax
call dword [ecx + 0x178]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 0x21f3fa0
push 0x55
push eax
call dword [ecx + 0x178]
push 0x21f3fe0
push 0
lea edx, [esp + 0x2a8]
push edx
call fcn.005d2bb2
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x2a4]
push edx
push 0x59
push eax
call dword [ecx + 0x178]
mov eax, dword [0x705d6c]
test eax, eax
je 0x4138c5
mov eax, dword [0x70594c]
mov cl, byte [eax + 0x1d0]
test cl, cl
je 0x4138c5
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 0x413899
mov cl, byte [eax + 0x304]
test cl, cl
jne 0x413891
mov dword [esp + 0x34], 0xbf800000
mov dword [esp + 0x38], 0xbccccccd
jmp 0x413899
mov dword [esp + 0x38], 0x3d0f5c29
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x34]
push edx
push 0x5f
push eax
call dword [ecx + 0x178]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0
push 0x98
push eax
call dword [ecx + 0xe4]
mov ecx, dword [0x21f4300]
push 1
call fcn.00531f70
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 [0x21f4300]
jne 0x4138f4
push 1
jmp 0x4138f6
push 2
call fcn.00532040
mov ecx, dword [esi + 0x3c]
test ecx, ecx
jne 0x413914
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push ecx
push ecx
push eax
call dword [edx + 0x104]
jmp 0x413935
call fcn.00527da0
cmp dword [esi], 0
je 0x413935
mov edx, dword [0x6f5a0c]
mov eax, dword [0x21f3f98]
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 0x413d70
mov ecx, dword [eax + 0x30]
xor esi, esi
test ecx, ecx
jle 0x4139d6
mov edi, 0xa
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x34]
test eax, eax
je 0x41499c
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.005d268c
lea eax, [esp + 0xe0]
push eax
mov ecx, eax
push ecx
call fcn.005d28dd
mov eax, dword [0x21f3f98]
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 0x413956
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
mov eax, dword [0x21f3f98]
test ecx, ecx
mov ecx, dword [eax]
push 0
jne 0x413b88
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 1
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 4
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 0x1b
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 1
push eax
call dword [edx + 0x104]
test edi, edi
jne 0x413ad2
fld dword [ebx + 0x2e0]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 5
jnp 0x413ad2
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 5
push edi
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push edi
push 6
push edi
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 4
push edi
push eax
call dword [ecx + 0x10c]
jmp 0x413d18
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 5
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 3
push 6
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 4
push 4
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
fld dword [ebx + 0x2e0]
fmul dword [0x6a961c]
mov esi, dword [0x21f3f98]
mov edi, dword [esi]
call fcn.005ba9a8
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 0x413d18
fld dword [ebx + 0x2e0]
fcomp dword [0x6a9618]
fnstsw ax
test ah, 0x41
jne 0x413d18
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0x64ffffff
push 0x3c
push eax
call dword [edx + 0xe4]
jmp 0x413d18
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 2
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0x12
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 2
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 3
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 5
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 3
push 6
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 3
push 4
push 1
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 0x1b
push eax
call dword [edx + 0xe4]
test edi, edi
jne 0x413caa
fld dword [ebx + 0x2e0]
fcomp dword [0x6a92f8]
fnstsw ax
test ah, 5
jp 0x413d18
fld dword [ebx + 0x2e0]
mov eax, dword [0x21f3f98]
fmul dword [0x6a961c]
mov esi, dword [eax]
call fcn.005ba9a8
mov ecx, dword [0x21f3f98]
shl eax, 0x18
or eax, 0xffffff
push eax
push 0x3c
push ecx
call dword [esi + 0xe4]
test edi, edi
je 0x413d06
fld dword [ebx + 0x2e0]
fcomp dword [0x6a9618]
fnstsw ax
test ah, 0x41
jne 0x413d06
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0x64ffffff
push 0x3c
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 0x1b
push eax
call dword [ecx + 0xe4]
mov edx, dword [0x21f4300]
mov eax, dword [edx + 4]
test eax, eax
jne 0x413d63
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0x112
push eax
call dword [ecx + 0x164]
mov eax, dword [0x21f3f98]
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.0053ab70
mov ecx, esi
call fcn.0053b580
jmp 0x413d6c
mov ecx, dword [esp + 0x10]
call fcn.0053b520
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 0x4138e5
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 2
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 2
push 3
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 4
push 1
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 1
push 1
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 4
push 1
push eax
call dword [edx + 0x10c]
fld dword [ebx + 0x2e0]
fcomp dword [0x6a92f8]
push 0
fnstsw ax
test ah, 5
mov eax, dword [0x21f3f98]
jp 0x413e8e
mov ecx, dword [eax]
push 5
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 6
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 0x1b
push eax
call dword [edx + 0xe4]
push 0
jmp 0x413e9b
mov edx, dword [eax]
push 0x1b
push eax
call dword [edx + 0xe4]
push 1
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0xf
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 1
push eax
call dword [edx + 0x104]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 4
push 0
push eax
call dword [ecx + 0x10c]
mov ecx, dword [0x21f4300]
push 0
call fcn.00531f70
mov eax, dword [ebx + 0xb8]
test eax, eax
mov ecx, 0x10
mov esi, 0x21f3fa0
lea edi, [esp + 0xa0]
rep movsd dword es:[edi], dword [esi]
je 0x413f71
mov eax, dword [0x705df0]
test eax, eax
je 0x413f71
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0x112
push eax
call dword [ecx + 0x164]
mov ecx, dword [ebx + 0xac]
test ecx, ecx
je 0x413f41
push 0
call fcn.00527dd0
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xb8]
push edx
call fcn.0053ab70
mov ecx, dword [ebx + 0xb8]
call fcn.0053b580
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 1
push 0x89
push eax
call dword [ecx + 0xe4]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 3
push 0x16
push eax
call dword [edx + 0xe4]
mov eax, dword [ebx + 0xdc]
cmp eax, 8
je 0x413f9a
cmp eax, 9
je 0x413f9a
mov ecx, ebx
call fcn.004122f0
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xa0]
push eax
push esi
mov ecx, ebx
call fcn.00412530
lea ecx, [esp + 0xa0]
push ecx
push esi
mov ecx, ebx
call fcn.004127d0
mov al, byte [ebx + 0x185]
cmp al, 0xb
mov byte [esp + 0x10], 1
je 0x413fd1
cmp al, 0x3b
jne 0x413ff2
cmp dword [ebx + 0xcc], 0x38
jne 0x413ff2
fld dword [ebx + 0xc8]
fcomp dword [0x6a9614]
fnstsw ax
test ah, 0x41
jne 0x413ff2
mov byte [esp + 0x10], 0
mov eax, dword [0x705d6c]
test eax, eax
je 0x414025
mov ecx, dword [0x70594c]
mov al, byte [ecx + 0x1d0]
test al, al
je 0x414025
call fcn.00528300
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 0x98
push eax
call dword [edx + 0xe4]
mov al, byte [esp + 0x10]
test al, al
je 0x41416a
cmp dword [ebx + 0xdc], 2
je 0x41405d
mov eax, dword [ebx + 0xe0]
test eax, eax
jne 0x414058
mov eax, dword [ebx + 0xe4]
test eax, eax
jne 0x414058
mov al, byte [ebx + 0x378]
test al, al
je 0x41405d
mov byte [esp + 0x10], 0
cmp dword [ebx + 0xcc], 0x74
jge 0x41416a
mov al, byte [esp + 0x10]
test al, al
je 0x41416a
xor ecx, ecx
mov dword [esp + 0x20], ecx
lea esp, [esp]
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 0x414158
cmp ecx, 1
jne 0x4140cf
mov eax, dword [ebx + 0x78]
mov cl, byte [eax + 0x4c]
cmp cl, 5
je 0x4140c6
cmp cl, 0x31
je 0x4140c6
cmp cl, 0x32
je 0x4140c6
cmp cl, 0xf
je 0x4140c6
cmp cl, 0x41
je 0x4140c6
movzx edx, byte [ebx + 0x296]
jmp 0x414125
movzx ecx, byte [ebx + 0x297]
jmp 0x4140f0
movzx ecx, byte [eax + 0x4c]
add ecx, 0xfffffff3
cmp ecx, 0x33
ja case.0x4140e2.15
movzx ecx, byte [ecx + 0x4149c0]
jmp dword [ecx*4 + 0x4149b8]
movzx ecx, byte [ebx + 0x295]
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 0x414151
movzx edx, byte [ebx + 0x294]
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.00427d50
mov ecx, dword [esp + 0x20]
inc ecx
cmp ecx, 2
mov dword [esp + 0x20], ecx
jl 0x414080
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x41492c
mov eax, dword [ebx + 0xb4]
test eax, eax
je 0x41492c
mov eax, dword [0x705df0]
test eax, eax
je 0x41492c
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 0
push 0x89
push eax
call dword [edx + 0xe4]
fld dword [ebx + 0x2b4]
fcomp dword [0x6a9610]
fnstsw ax
test ah, 0x41
jne 0x41437a
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x414317
xor eax, eax
mov dword [esp + 0x1c], eax
mov ecx, dword [ebx + 0xb0]
cmp byte [eax + ecx + 0x2c], 1
jne 0x414317
mov esi, dword [eax + ecx + 0x34]
test esi, esi
mov ecx, dword [eax + ecx + 0x30]
mov dword [esp + 0x20], ecx
jl 0x414305
test ecx, ecx
jl 0x414305
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.005d3023
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.005d268c
mov ecx, 0x10
lea esi, [esp + 0x120]
mov edi, 0x21f419c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00569870
mov eax, dword [esp + 0x1c]
add eax, 0x18
cmp eax, 0x1e0
mov dword [esp + 0x1c], eax
jl 0x4141d3
mov ecx, 0x10
lea esi, [esp + 0xa0]
mov edi, 0x21f3fa0
rep movsd dword es:[edi], dword [esi]
push 0x21f3fa0
mov ecx, 0x21f3fa0
call fcn.0052bb10
mov ecx, dword [ebx + 0xac]
test ecx, ecx
je 0x41434a
push 0
call fcn.00527dd0
mov edx, dword [ebx + 0xbc]
mov ecx, dword [ebx + 0xb4]
push edx
call fcn.00569b20
mov ecx, dword [ebx + 0xbc]
test ecx, ecx
je 0x4148db
mov eax, dword [ecx + 4]
test eax, eax
je 0x4148db
jmp 0x4148d6
cmp dword [ebx + 0x250], 2
je 0x4146b4
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x414516
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x4143a0
mov ecx, dword [ebx + 0xb0]
cmp byte [eax + ecx + 0x2c], 1
jne 0x414516
mov esi, dword [eax + ecx + 0x34]
test esi, esi
mov ecx, dword [eax + ecx + 0x30]
mov dword [esp + 0x20], ecx
jl 0x414504
test ecx, ecx
jl 0x414504
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.005d3023
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.005d268c
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.005d268c
mov ecx, 0x10
lea esi, [esp + 0x1a0]
mov edi, 0x21f419c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.00569870
mov eax, dword [esp + 0x1c]
add eax, 0x18
cmp eax, 0x1e0
mov dword [esp + 0x1c], eax
jl 0x4143a0
mov eax, dword [esp + 0x14]
mov ecx, 0x10
lea esi, [esp + 0xa0]
mov edi, 0x21f419c
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.005d268c
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, 0x21f3fa0
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.0052be00
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x28]
push eax
call fcn.005d19bf
fld dword [esp + 0x24]
fmul dword [0x6a8678]
fst dword [esp + 0x24]
fld dword [esp + 0x28]
fmul dword [0x6a8678]
fst dword [esp + 0x28]
mov eax, dword [esp + 0x28]
fld dword [esp + 0x2c]
fmul dword [0x6a8678]
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
mov edx, ecx
fxch st(1)
push edx
fstp dword [0x21f420c]
mov dword [0x21f4214], ecx
mov ecx, dword [esp + 0x28]
fstp dword [0x21f4210]
push eax
push ecx
mov ecx, 0x849668
call fcn.00537ef0
call fcn.005bb061
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
push ecx
mov ecx, 0x849668
fmul dword [0x6a8bb4]
fmul dword [0x6a960c]
fstp dword [esp]
call fcn.00537f10
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x10]
push edx
push eax
push ecx
mov ecx, 0x7095e0
call fcn.0040e250
fstp dword [0x21f41dc]
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0xb4]
push edx
call fcn.005695c0
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.00569820
fld dword [ebx + 0x2b4]
fcomp dword [0x6a9608]
fnstsw ax
test ah, 0x41
jne 0x4146a0
mov eax, dword [0x705f54]
push 1
push eax
jmp 0x4146a9
mov ecx, dword [0x705f54]
push 0
push ecx
mov ecx, dword [ebx + 0xb4]
call fcn.0056c9b0
mov ecx, 0x21f3fa0
call fcn.0052bac0
mov ecx, dword [ebx + 0xac]
test ecx, ecx
je 0x4146cf
push 0
call fcn.00527dd0
mov ecx, dword [ebx + 0xb4]
call fcn.005698e0
mov eax, dword [ebx + 0xbc]
test eax, eax
je 0x4148db
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4148db
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.0056a030
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.0056a0f0
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.0056a090
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.0056a150
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.0056a250
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.0056a2a0
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.0056a1b0
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.0056a200
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.0056a2f0
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.00544080
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 0
push 2
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 2
push 3
push 0
push eax
call dword [edx + 0x10c]
mov eax, dword [0x21f3f98]
mov ecx, dword [eax]
push 4
push 1
push 0
push eax
call dword [ecx + 0x10c]
mov eax, dword [0x21f3f98]
mov edx, dword [eax]
push 1
push 0x89
push eax
call dword [edx + 0xe4]
mov eax, dword [0x705d6c]
test eax, eax
je 0x41494a
mov ecx, dword [0x70594c]
mov al, byte [ecx + 0x1d0]
test al, al
je 0x41494a
call fcn.00528290
mov eax, dword [ebx + 0x3d0]
test eax, eax
je 0x41499c
push eax
mov ecx, 0x7095e0
call fcn.00446890
mov esi, eax
test esi, esi
je 0x41499c
push ebx
mov ecx, esi
call fcn.00411740
test eax, eax
je 0x41499c
mov edi, dword [esi + 0x3cc]
mov ecx, esi
mov byte [esi + 0x378], 3
mov dword [esi + 0x3cc], 0
call fcn.00413360
mov dword [esi + 0x3cc], edi
mov byte [esi + 0x378], 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret