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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x18914
call fcn.00623680
mov eax, dword [ebp + 8]
mov ecx, dword [0x871740]
and eax, 0xffff
imul eax, eax, 0x724
push ebx
push esi
push edi
mov edi, dword [ecx + 0x34]
mov ecx, dword [edi + eax + 0x34]
add edi, eax
or esi, 0xffffffff
cmp ecx, esi
mov dword [esp + 0x40], eax
mov eax, esi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], 0
je 0x413701
mov edx, dword [edi + 0x58]
mov eax, dword [0x86cff4]
and edx, 0xffff
shl edx, 5
mov ecx, dword [edx + eax + 0x14]
mov edx, dword [edi + 0x5c]
and edx, 0xffff
shl edx, 5
mov eax, dword [edx + eax + 0x14]
mov edx, dword [0x738b8c]
mov ebx, dword [edx + 0x430]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0x34]
mov ecx, eax
and ecx, 0xffff
imul ecx, ecx, 0xb0
add ecx, ebx
mov dword [esp + 0x14], ecx
xor ecx, ecx
lea ebx, [esp + 0x890]
mov dword [esp + 0x10], ecx
mov byte [esp + 0x27], cl
call fcn.004360e0
mov ax, word [edi + 0x3b8]
cmp ax, si
je 0x412c7d
movsx eax, ax
mov dword [esp + eax*4 + 0x890], esi
cmp word [edi + 0x15e], 0
jne 0x412c8f
fld dword [0x66c598]
jmp 0x412c95
fld dword [0x66cad0]
mov esi, dword [ebp + 0xc]
fld st(0)
fstp dword [esi + 0x18]
fld dword [0x66c40c]
fld dword [esi + 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x412cb4
fstp dword [esi + 0x1c]
jmp 0x412cb6
fstp st(0)
cmp word [esi + 4], 5
mov cl, byte [esi + 0x20]
sete al
test cl, cl
mov byte [esi + 0x42], al
mov byte [esi + 0x5fc], 0
je 0x412dac
lea ecx, [esi + 0x24]
lea eax, [esi + 0x604]
mov edx, ecx
mov ebx, dword [edx]
mov edi, eax
mov dword [edi], ebx
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [edi + 4], ebx
mov dword [edi + 8], edx
mov edi, dword [ecx]
lea edx, [esi + 0x634]
mov dword [edx], edi
mov edi, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [edx + 4], edi
mov edi, dword [esp + 0x3c]
mov dword [edx + 8], ecx
mov edx, dword [esi + 0x30]
mov cx, word [esi + 0x34]
mov word [esi + 0x640], cx
mov byte [esi + 0x5fc], 1
mov dword [esi + 0x630], edx
fld dword [eax]
fsub dword [edi + 0x12c]
push 0
fld dword [eax + 4]
push 0
fsub dword [edi + 0x130]
or ecx, 0xffffffff
fld dword [eax + 8]
push eax
fsub dword [edi + 0x134]
mov dword [esi + 0x644], ecx
mov dword [esi + 0x62c], ecx
mov dword [esi + 0x658], 0
fld st(0)
lea ebx, [esi + 0x610]
fmul st(1)
push 1
fld st(2)
mov eax, ebx
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp dword [esi + 0x600]
mov edx, dword [edi + 0x18]
push edx
fstp st(0)
fstp st(0)
fstp st(0)
call fcn.00564b60
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
lea eax, [esi + 0x61c]
mov dword [eax], ecx
mov ecx, dword [ebx + 8]
mov dword [eax + 4], edx
add esp, 0x14
mov dword [eax + 8], ecx
jmp 0x412f4d
cmp word [edi + 0x6c], 4
jne 0x412dbe
mov ecx, dword [edi + 0xb8]
cmp ecx, 0xffffffff
jne 0x412dcd
mov ecx, dword [edi + 0x270]
cmp ecx, 0xffffffff
je 0x412f4d
cmp ecx, 0xffffffff
mov dword [esp + 0x28], ecx
je 0x412f4d
mov edx, dword [0x8716a0]
mov ebx, ecx
mov ecx, dword [edx + 0x34]
and ebx, 0xffff
imul ebx, ebx, 0x138
add ebx, ecx
test al, al
je 0x412e10
mov ax, word [ebx + 0x24]
cmp ax, 2
jl 0x412e10
cmp ax, 3
jg 0x412e10
mov eax, dword [esp + 0x28]
call fcn.0041f3b0
mov byte [esi + 0x5fc], 1
lea eax, [ebx + 0xbc]
mov edx, dword [eax]
lea ecx, [esi + 0x604]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
lea ecx, [ebx + 0xf0]
mov eax, dword [ecx]
lea edx, [esi + 0x634]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [ebx + 0xec]
mov dword [esi + 0x630], edx
mov ax, word [ebx + 0x100]
mov edx, dword [esp + 0x28]
mov word [esi + 0x640], ax
mov ecx, dword [ebx + 0x11c]
mov dword [esi + 0x600], ecx
mov dword [esi + 0x644], edx
lea eax, [ebx + 0x104]
mov edx, dword [eax]
lea ecx, [esi + 0x610]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 0x110]
mov al, byte [esi + 0x41]
test al, al
mov dword [esi + 0x62c], ecx
mov edx, dword [ebx + 0x20]
mov dword [esi + 0x658], edx
je 0x412ede
cmp dword [ebx + 0x8c], 0xffffffff
je 0x412ede
lea eax, [ebx + 0x90]
mov edx, dword [eax]
lea ecx, [esi + 0x61c]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
jmp 0x412efe
mov edx, dword [ebx + 0x104]
lea ecx, [esi + 0x61c]
mov dword [ecx], edx
mov eax, dword [ebx + 0x108]
mov dword [ecx + 4], eax
mov edx, dword [ebx + 0x10c]
mov dword [ecx + 8], edx
mov ax, word [ebx + 0x24]
cmp ax, 4
jl 0x412f2e
cmp ax, 5
jg 0x412f2e
mov byte [esi + 0x648], 1
add ebx, 0x40
mov ecx, dword [ebx]
lea eax, [esi + 0x64c]
mov dword [eax], ecx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov ax, word [esi + 4]
cmp ax, 4
je 0x412f42
cmp ax, 6
je 0x412f42
xor eax, eax
jmp 0x412f47
mov eax, 1
mov byte [esi + 0x628], al
mov ecx, dword [esp + 0x34]
fld dword [ecx + 0xac]
mov ebx, dword [esp + 0x2c]
fld dword [ecx + 0xa8]
fld dword [ecx + 0xa4]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x66c504]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x412fb3
mov byte [esi + 0x5dc], 1
mov eax, dword [ecx + 0xa4]
lea edx, [esi + 0x5e0]
mov dword [edx], eax
mov eax, dword [ecx + 0xa8]
mov dword [edx + 4], eax
mov eax, dword [ecx + 0xac]
mov dword [edx + 8], eax
jmp 0x413006
fld dword [ebx + 0x3c]
fld dword [ebx + 0x38]
fld dword [ebx + 0x34]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x66c504]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x412fff
mov byte [esi + 0x5dc], 1
mov eax, dword [ebx + 0x34]
lea edx, [esi + 0x5e0]
mov dword [edx], eax
mov eax, dword [ebx + 0x38]
mov dword [edx + 4], eax
mov eax, dword [ebx + 0x3c]
mov dword [edx + 8], eax
jmp 0x413006
mov byte [esi + 0x5dc], 0
fld dword [ecx + 0xb8]
add ecx, 0xb0
fld dword [ecx + 4]
fld dword [ecx]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x66c504]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x413059
mov byte [esi + 0x5ec], 1
mov eax, dword [ecx]
lea edx, [esi + 0x5f0]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
jmp 0x4130ac
fld dword [ebx + 0x48]
fld dword [ebx + 0x44]
fld dword [ebx + 0x40]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fcomp dword [0x66c504]
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x4130a5
mov byte [esi + 0x5ec], 1
mov eax, dword [ebx + 0x40]
lea edx, [esi + 0x5f0]
mov dword [edx], eax
mov ecx, dword [ebx + 0x44]
mov dword [edx + 4], ecx
mov eax, dword [ebx + 0x48]
mov dword [edx + 8], eax
jmp 0x4130ac
mov byte [esi + 0x5ec], 0
cmp word [edi + 0x280], 0
jle 0x4130dd
mov al, byte [edi + 0x287]
test al, al
je 0x4130dd
fld dword [edi + 0x2d8]
fadd dword [0x66c584]
fcomp dword [edi + 0x2d4]
fnstsw ax
test ah, 0x41
jne 0x4130dd
mov byte [esi + 0x40], 1
mov cl, byte [edi + 0x99]
mov byte [esi + 0x44], cl
cmp word [edi + 0x15e], 4
jne 0x4130f8
mov byte [esi + 0x45], 1
mov byte [esi + 0x46], 1
mov dword [esi + 0x50], 0
mov al, byte [edi + 0x3d8]
test al, al
je 0x413135
lea edx, [edi + 0x3dc]
mov ecx, dword [edx]
lea eax, [esi + 0x58]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov edx, dword [edx + 8]
mov dword [eax + 8], edx
mov eax, dword [esi + 0x50]
mov ecx, dword [ebx + 0x3c8]
shl eax, 4
mov dword [eax + esi + 0x54], ecx
inc dword [esi + 0x50]
fld dword [ebx + 0x3cc]
fcomp dword [0x66c40c]
fnstsw ax
test ah, 0x41
jne 0x413210
movsx eax, word [esi + 4]
test eax, eax
je 0x413162
cmp eax, 3
je 0x413162
cmp eax, 6
jne 0x413210
mov edx, dword [0x871740]
mov eax, dword [edx + 0x34]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + ecx + 0x50]
cmp dword [esi + 0x50], 0x20
jge 0x413210
lea ecx, [ecx]
cmp edx, 0xffffffff
je 0x413210
mov eax, edx
mov edx, dword [0x8716a0]
mov ecx, dword [edx + 0x34]
and eax, 0xffff
imul eax, eax, 0x138
mov edx, dword [eax + ecx + 8]
add eax, ecx
mov cx, word [eax + 0x24]
cmp cx, 2
jl 0x413206
cmp cx, 3
jg 0x413206
mov cl, byte [eax + 0x60]
test cl, cl
jne 0x413206
mov cl, byte [eax + 0x127]
test cl, cl
jne 0x413206
mov cl, byte [eax + 0x12e]
test cl, cl
jne 0x413206
mov ecx, dword [esi + 0x50]
add eax, 0xbc
mov ebx, dword [eax]
shl ecx, 4
lea ecx, [ecx + esi + 0x58]
mov dword [ecx], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + 4], ebx
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x2c]
mov dword [ecx + 8], eax
mov ecx, dword [esi + 0x50]
mov eax, dword [ebx + 0x3cc]
shl ecx, 4
mov dword [ecx + esi + 0x54], eax
inc dword [esi + 0x50]
cmp dword [esi + 0x50], 0x20
jl 0x413180
xor eax, eax
mov word [esi + 0x254], ax
mov word [esi + 0x256], ax
mov word [esi + 0x258], ax
mov eax, dword [ebx]
xor cl, cl
test eax, eax
jns 0x413242
cmp word [edi + 0x6e], 3
jl 0x413242
mov al, byte [edi + 0x200]
test al, al
jle 0x413242
mov cl, 1
test byte [ebx + 4], 1
je 0x413251
cmp word [edi + 0x6e], 3
jl 0x413251
mov cl, 1
movsx eax, word [esi + 4]
cmp eax, 6
ja case.0x413265.1
movzx edx, byte [eax + 0x413e54]
jmp dword [edx*4 + 0x413e4c]
test cl, cl
je case.0x413265.1
mov eax, dword [0x871740]
mov ecx, dword [eax + 0x34]
mov edx, dword [esp + 0x40]
mov eax, dword [ecx + edx + 0x50]
mov dword [esp + 0x38], eax
jmp 0x413290
mov eax, dword [esp + 0x38]
mov edi, edi
cmp eax, 0xffffffff
je case.0x413265.1
mov ebx, dword [esp + 0x38]
mov ecx, dword [0x8716a0]
mov edx, dword [ecx + 0x34]
and ebx, 0xffff
imul ebx, ebx, 0x138
mov cx, word [ebx + edx + 0x24]
add ebx, edx
cmp cx, 2
mov edx, dword [ebx + 8]
mov dword [esp + 0x38], edx
jl 0x413434
cmp cx, 3
jg 0x413434
mov cl, byte [ebx + 0x127]
test cl, cl
jne 0x413434
mov cl, byte [ebx + 0x60]
test cl, cl
jne 0x413391
mov cl, byte [ebx + 0x12e]
test cl, cl
jne 0x413304
cmp dword [ebx + 0x110], 0xffffffff
jne 0x413391
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [ebp + 8]
call fcn.00420980
add esp, 4
test al, al
je 0x413391
mov al, byte [ebx + 0x12e]
xor edx, edx
test al, al
movsx eax, word [esi + 0x254]
setne dl
imul eax, eax, 0x1c
mov word [eax + esi + 0x25c], dx
movsx edx, word [esi + 0x254]
imul edx, edx, 0x1c
lea eax, [edx + esi + 0x260]
lea ecx, [ebx + 0xbc]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
movsx edx, word [esi + 0x254]
mov ecx, dword [esp + 0x18]
imul edx, edx, 0x1c
lea eax, [edx + esi + 0x26c]
mov edx, dword [esp + 0x1c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
inc word [esi + 0x254]
inc word [esi + 0x256]
mov al, byte [ebx + 0x60]
test al, al
je 0x413434
mov edx, dword [esp + 0x2c]
mov al, byte [edx + 4]
mov cl, byte [ebx + 0xa4]
and al, 1
test cl, cl
je 0x4133c3
mov cl, byte [ebx + 0x12e]
test cl, cl
jne 0x4133c7
mov cl, byte [ebx + 0x12f]
test cl, cl
jne 0x4133c7
test al, al
je 0x413434
mov ecx, dword [ebx + 0x110]
cmp ecx, 0xffffffff
jne 0x4133d5
mov ecx, dword [ebx + 0x18]
movsx eax, word [esi + 0x254]
imul eax, eax, 0x1c
mov word [eax + esi + 0x25c], 2
movsx edx, word [esi + 0x254]
imul edx, edx, 0x1c
lea eax, [edx + esi + 0x260]
add ebx, 0xbc
mov edx, dword [ebx]
mov dword [eax], edx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov edx, dword [ebx + 8]
mov dword [eax + 8], edx
movsx eax, word [esi + 0x254]
imul eax, eax, 0x1c
lea eax, [eax + esi + 0x26c]
call fcn.005650c0
inc word [esi + 0x254]
inc word [esi + 0x258]
cmp word [esi + 0x254], 0x20
jl 0x41328a
mov ecx, dword [ebp + 0x1c]
mov edx, dword [esp + 0x14]
mov byte [ecx], 0
mov ecx, dword [edx + 0x98]
xor eax, eax
cmp ecx, eax
mov byte [esp + 0x26], 0
mov dword [esp + 0x28], eax
jle 0x4136b7
mov dword [esp + 0x34], eax
lea esp, [esp]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
mov edx, dword [ecx + 0x9c]
lea eax, [eax + eax*2]
mov cl, byte [edx + eax*8 + 0xc]
lea ebx, [edx + eax*8]
mov eax, 1
shl eax, cl
test dword [esi], eax
je 0x41368d
mov al, byte [esi + 0x44]
test al, al
jne 0x4134a8
cmp dword [ebx + 0x14], 0xffffffff
je 0x41368d
cmp word [esi + 4], 5
jne 0x4134c9
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebp + 8]
push 1
push ecx
push ebx
call fcn.00412970
add esp, 0xc
test al, al
je 0x41368d
mov edx, dword [esp + 0x34]
mov eax, dword [esp + edx*4 + 0x890]
cmp eax, 0xffffffff
je 0x4135c0
cmp word [esi + 4], 4
jne 0x41351a
mov ecx, dword [esi + 0x50]
cmp ecx, 0x20
jge 0x41351a
shl ecx, 4
lea ecx, [ecx + esi + 0x58]
mov edx, ebx
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edx, dword [edx + 8]
mov edi, dword [esp + 0x3c]
mov dword [ecx + 8], edx
mov ecx, dword [esi + 0x50]
shl ecx, 4
mov dword [ecx + esi + 0x54], 0x40800000
inc dword [esi + 0x50]
mov edx, dword [0x871740]
fld dword [ebx]
mov ecx, dword [edx + 0x34]
and eax, 0xffff
imul eax, eax, 0x724
fsub dword [eax + ecx + 0x12c]
fld dword [ebx + 4]
fsub dword [eax + ecx + 0x130]
fld dword [ebx + 8]
fsub dword [eax + ecx + 0x134]
fld st(0)
lea eax, [eax + ecx + 0x12c]
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp st(3)
fstp st(0)
fstp st(0)
fld dword [ebx]
fsub dword [edi + 0x12c]
fld dword [ebx + 4]
fsub dword [edi + 0x130]
fld dword [ebx + 8]
fsub dword [edi + 0x134]
fld st(3)
fcomp dword [0x66c410]
fnstsw ax
test ah, 5
jnp 0x413685
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp st(3)
fstp st(0)
fstp st(0)
fadd st(0), st(0)
fxch st(1)
fcompp
fnstsw ax
test ah, 5
jnp 0x41368d
mov eax, dword [esp + 0x10]
cmp ax, 0x200
jge 0x413676
mov dx, word [esp + 0x28]
movsx eax, ax
imul eax, eax, 0x3c
mov word [esp + eax + 0x1094], dx
mov edx, dword [0x690504]
mov dword [esp + eax + 0x1090], ebx
mov word [esp + eax + 0x1096], 0
mov dword [esp + eax + 0x1098], 0x7f7fffff
mov ebx, dword [edx]
lea ecx, [esp + eax + 0x109c]
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov edx, dword [0x690504]
mov ecx, 0x7f7fffff
mov dword [esp + eax + 0x10a8], ecx
mov dword [esp + eax + 0x10ac], ecx
mov ebx, dword [edx]
lea ecx, [esp + eax + 0x10b0]
mov dword [ecx], ebx
mov ebx, dword [edx + 4]
mov dword [ecx + 4], ebx
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
xor ecx, ecx
mov dword [esp + eax + 0x10bc], ecx
mov dword [esp + eax + 0x10c4], ecx
mov dword [esp + eax + 0x10c8], ecx
mov byte [esp + eax + 0x10c0], 1
mov byte [esp + eax + 0x10c1], cl
inc dword [esp + 0x10]
jmp 0x41368d
mov al, byte [esp + 0x26]
test al, al
jne 0x41368d
mov byte [esp + 0x26], 1
jmp 0x41368d
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x98]
inc eax
mov dword [esp + 0x28], eax
movsx eax, ax
cmp eax, edx
mov dword [esp + 0x34], eax
jl 0x413470
cmp word [esp + 0x10], 0
jne 0x413708
mov edx, dword [0x871740]
mov eax, dword [edx + 0x34]
add eax, dword [esp + 0x40]
mov word [eax + 0x3c6], 0
lea ecx, [eax + 0x3ca]
mov edx, 4
jmp 0x4136e0
mov word [ecx], 0xffff
add ecx, 4
dec edx
jne 0x4136e0
mov cl, byte [eax + 0x3d8]
test cl, cl
je 0x4136fc
mov byte [eax + 0x3d8], 0
mov ax, word [esp + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [esi + 0x5fc]
test al, al
je 0x4138fd
mov al, byte [esi + 0x42]
test al, al
je 0x4138fd
mov al, byte [esi + 0x44]
test al, al
je 0x4137f7
cmp word [esp + 0x10], 0
jle 0x4138fd
movzx eax, word [esp + 0x10]
lea edi, [esi + 0x604]
lea ebx, [esp + 0x1090]
mov dword [esp + 0x14], eax
mov edi, edi
mov ecx, dword [ebx]
fld dword [ecx]
fsub dword [edi]
fstp dword [esp + 0x18]
fld dword [ecx + 4]
fsub dword [edi + 4]
fstp dword [esp + 0x1c]
fld dword [ecx + 8]
fsub dword [edi + 8]
fstp dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fcomp dword [0x66ca90]
fnstsw ax
test ah, 5
jp 0x4137e0
mov edx, dword [0x738b9c]
push 0
mov eax, ecx
push edx
xor esi, esi
mov ecx, edi
call fcn.0043a0b0
add esp, 8
test al, al
je 0x4137dd
lea ecx, [esp + 0x18]
call fcn.00401990
fstp dword [ebx + 0x18]
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x43]
test cl, cl
je 0x4137dd
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x28], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x14]
add ebx, 0x3c
dec eax
mov dword [esp + 0x14], eax
jne 0x413750
jmp 0x4138fd
mov edx, dword [esi + 0x630]
cmp edx, 0xffffffff
je 0x4138fd
xor eax, eax
mov ecx, 0x12
lea edi, [esp + 0x48]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x8c]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
mov al, byte [ecx + 0x376]
mov byte [esp + 0x4c], al
add esi, 0x634
mov ecx, dword [esi]
mov eax, 0xffffffff
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x68], edx
mov edx, dword [0x738b9c]
mov ecx, 0x4023
lea edi, [esp + 0x8890]
rep stosd dword es:[edi], eax
mov dword [esp + 0x88f4], edx
mov ecx, 0x12
lea esi, [esp + 0x48]
lea edi, [esp + 0x8890]
mov byte [esp + 0x58], 1
mov byte [esp + 0x88], 1
mov dword [esp + 0x8c], 0x41a00000
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x88d8], eax
lea eax, [esp + 0x8890]
call fcn.0043a8c0
mov eax, dword [esp + 0x10]
test ax, ax
jle 0x4138fa
lea esi, [esp + 0x1090]
movzx ebx, ax
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x43]
test cl, cl
je 0x4138d6
lea ecx, [esi + 0x20]
jmp 0x4138d8
xor ecx, ecx
mov eax, dword [esi]
push ecx
push 0
lea ecx, [esi + 0x18]
push ecx
push eax
mov eax, dword [eax + 0x14]
lea edi, [esp + 0x88a0]
call fcn.0043a320
add esp, 0x10
add esi, 0x3c
dec ebx
jne 0x4138c7
mov esi, dword [ebp + 0xc]
mov al, byte [esi + 0x44]
test al, al
jne 0x413a27
mov eax, dword [ebp + 8]
lea ebx, [esp + 0x48]
call fcn.0041a9d0
mov al, byte [esi + 0x36]
test al, al
mov edx, dword [esi + 0x1c]
mov bl, 1
mov byte [esp + 0x88], bl
mov dword [esp + 0x8c], edx
je 0x413992
mov al, byte [esi + 0x5fc]
test al, al
je 0x413992
mov eax, dword [esi + 0x644]
or ecx, 0xffffffff
cmp eax, 0xffffffff
je 0x41395e
mov ecx, dword [0x8716a0]
mov edx, dword [ecx + 0x34]
and eax, 0xffff
imul eax, eax, 0x138
mov ecx, dword [eax + edx + 0x18]
lea eax, [esi + 0x604]
mov edx, dword [eax]
mov dword [esp + 0x70], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x74], edx
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x78], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], eax
jmp 0x4139e6
mov eax, dword [esp + 0x3c]
cmp word [eax + 0x280], 0
jle 0x4139ea
mov ecx, dword [esp + 0x2c]
test byte [ecx + 4], 0x10
jne 0x4139ea
lea edx, [eax + 0x2b0]
mov ecx, dword [edx]
mov dword [esp + 0x70], ecx
mov ecx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x74], ecx
mov ecx, dword [eax + 0x294]
mov dword [esp + 0x78], edx
mov edx, dword [eax + 0x28c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x84], 0x41200000
mov byte [esp + 0x6c], bl
mov edx, dword [ebp + 0x18]
xor eax, eax
mov edi, edx
mov ecx, 0x4023
rep stosd dword es:[edi], eax
mov eax, dword [0x738b9c]
mov dword [edx + 0x64], eax
mov edi, edx
mov ecx, 0x12
lea esi, [esp + 0x48]
mov eax, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x48], 0
call fcn.0043a8c0
test al, al
mov esi, dword [ebp + 0xc]
je 0x413a27
mov ecx, dword [ebp + 0x1c]
mov byte [ecx], bl
cmp word [esp + 0x10], 0
jle 0x413bc5
mov edi, dword [esp + 0x3c]
movzx edx, word [esp + 0x10]
add edi, 0x12c
mov dword [esp + 0x28], edi
lea ebx, [esp + 0x109c]
mov dword [esp + 0x14], edx
mov al, byte [esi + 0x5fc]
test al, al
je 0x413a91
mov eax, dword [ebx - 0xc]
fld dword [eax]
fsub dword [esi + 0x604]
fld dword [eax + 4]
fsub dword [esi + 0x608]
fld dword [eax + 8]
fsub dword [esi + 0x60c]
fld st(2)
fmul st(3)
fld st(1)
fmul st(2)
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fstp dword [ebx + 0x20]
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [ebx - 0xc]
fld dword [ecx]
fsub dword [edi]
fstp dword [esp + 0x18]
fld dword [ecx + 4]
fsub dword [edi + 4]
fstp dword [esp + 0x1c]
fld dword [ecx + 8]
fsub dword [edi + 8]
fstp dword [esp + 0x20]
fld dword [esp + 0x18]
fmul dword [esp + 0x18]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
faddp st(1)
fst dword [esp + 0x34]
fld dword [esi + 0x1c]
fld st(0)
fmul st(1)
fxch st(1)
fxch st(2)
fcompp
fnstsw ax
fstp st(0)
test ah, 5
jp 0x413b9b
mov al, byte [esi + 0x44]
test al, al
je 0x413b76
lea edx, [esi + 0x604]
lea ecx, [esp + 0x18]
mov eax, edi
call fcn.004cc170
fsqrt
fstp dword [ebx + 0x10]
fld dword [esp + 0x34]
fsqrt
fld st(0)
fabs
fcomp qword [0x66c520]
fnstsw ax
test ah, 5
jnp 0x413b4c
fld dword [0x66c410]
fdiv st(1)
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fstp st(0)
jmp 0x413b54
fstp st(0)
fld dword [0x66c40c]
mov al, byte [esi + 0x40]
fstp dword [ebx - 4]
test al, al
je 0x413b9b
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, ebx
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
jmp 0x413b9b
mov al, byte [esi + 0x40]
mov edi, dword [ebp + 0x18]
neg al
lea edx, [ebx + 0x10]
sbb eax, eax
and eax, ebx
push eax
push edx
lea eax, [ebx - 4]
push eax
mov eax, dword [ecx + 0x14]
push ecx
call fcn.0043a320
mov edi, dword [esp + 0x38]
add esp, 0x10
fld dword [ebx - 4]
fcomp dword [esi + 0x1c]
fnstsw ax
test ah, 5
jp 0x413baf
mov byte [esp + 0x27], 1
jmp 0x413bb3
mov byte [ebx + 0x24], 0
mov eax, dword [esp + 0x14]
add ebx, 0x3c
dec eax
mov dword [esp + 0x14], eax
jne 0x413a51
mov al, byte [esi + 0x15]
test al, al
je 0x413cbf
mov al, byte [esp + 0x27]
test al, al
jne 0x413cbf
mov ecx, dword [0x70ba18]
movsx edx, word [esp + 0x10]
imul ecx, ecx, 0x19660d
add ecx, 0x3c6ef35f
mov eax, ecx
shr eax, 0x10
imul eax, edx
mov edx, dword [0x871740]
mov dword [0x70ba18], ecx
mov ecx, dword [ebp + 0x1c]
mov byte [ecx], 0
mov ecx, dword [edx + 0x34]
mov edx, dword [esp + 0x40]
shr eax, 0x10
add ecx, edx
mov dword [esp + 0x30], eax
mov word [ecx + 0x3c6], 0
lea edx, [ecx + 0x3ca]
mov edi, 4
mov word [edx], 0xffff
add edx, 4
dec edi
jne 0x413c31
mov dl, byte [ecx + 0x3d8]
test dl, dl
je 0x413c4d
mov byte [ecx + 0x3d8], 0
movsx ebx, ax
imul ebx, ebx, 0x3c
lea ebx, [esp + ebx + 0x1090]
xor eax, eax
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x34], eax
mov byte [ebx + 0x31], al
mov eax, dword [ebp + 8]
push 1
push eax
mov edi, esi
mov byte [ebx + 0x30], 1
call fcn.00412700
mov al, byte [ebx + 0x30]
add esp, 8
test al, al
je 0x413cb3
mov al, byte [esi + 0x5fc]
test al, al
je 0x413c94
mov eax, dword [ebp + 8]
mov ecx, esi
call fcn.00412100
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 0x38]
push edx
mov edi, esi
mov dword [ebx + 0x34], ecx
call fcn.00412740
add esp, 4
test al, al
mov byte [ebx + 0x30], al
jne 0x413df4
mov eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push ecx
lea ebx, [esp + 0x1098]
mov edi, esi
call fcn.00412700
add esp, 8
cmp word [esp + 0x10], 0
jle 0x413cf9
movzx edx, word [esp + 0x10]
xor eax, eax
lea ecx, [esp + 0x90]
nop
mov dword [ecx], eax
inc eax
add ecx, 4
dec edx
jne 0x413cf0
mov eax, dword [esp + 0x10]
mov word [0x6ea330], ax
lea edx, [esp + 0x1090]
movsx eax, ax
push 0x4127c0
lea ecx, [esp + 0x94]
mov dword [0x6ea334], edx
call fcn.00449620
mov ebx, dword [ebp + 8]
add esp, 4
mov edi, esi
call fcn.00412780
cmp word [esp + 0x10], 0
mov byte [esi + 0x65c], al
mov dword [esp + 0x14], 0
jle 0x4136fc
jmp 0x413d50
movsx eax, word [esp + 0x14]
movsx eax, word [esp + eax*4 + 0x90]
movsx ebx, ax
imul ebx, ebx, 0x3c
lea ebx, [esp + ebx + 0x1090]
mov dword [esp + 0x34], eax
mov al, byte [ebx + 0x30]
test al, al
je 0x413df4
mov al, byte [esi + 0x65c]
test al, al
je 0x413d97
fld dword [ebx + 0x38]
fadd dword [esi + 0x660]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 0x41
jnp 0x413df4
mov al, byte [esi + 0x5fc]
test al, al
je 0x413dab
mov eax, dword [ebp + 8]
mov ecx, esi
call fcn.00412100
mov edx, dword [ebp + 8]
mov ecx, dword [ebx + 0x38]
push edx
mov edi, esi
mov dword [ebx + 0x34], ecx
call fcn.00412740
add esp, 4
test al, al
je 0x413de0
fld dword [ebx + 0x38]
fcomp dword [esp + 0x44]
fnstsw ax
test ah, 0x41
jne 0x413de0
mov eax, dword [esp + 0x34]
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x30], eax
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x14]
inc eax
cmp ax, word [esp + 0x10]
mov dword [esp + 0x14], eax
jl 0x413d50
mov eax, dword [esp + 0x30]
cmp ax, 0xffff
je 0x413701
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x413e1d
movsx esi, ax
imul esi, esi, 0x3c
lea esi, [esp + esi + 0x1090]
mov ecx, 0xf
rep movsd dword es:[edi], dword [esi]
movsx edx, word [esp + 0x30]
mov ecx, dword [ebp + 0x14]
imul edx, edx, 0x3c
test ecx, ecx
mov ax, word [esp + edx + 0x1094]
je 0x413701
movsx edx, ax
mov edx, dword [esp + edx*4 + 0x890]
pop edi
pop esi
mov dword [ecx], edx
pop ebx
mov esp, ebp
pop ebp
ret