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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
mov eax, dword [0x870e38]
push ebx
push esi
push edi
xor edx, edx
mov edi, 0x4759a0
cmp eax, edx
mov dword [esp + 0x40], edi
mov dword [esp + 0x6c], 0x5d59c8
je 0x4039e4
mov edi, 0x5e5a08
mov dword [esp + 0x40], edi
fld qword [0xc16080]
fld qword [0xc16088]
fld qword [0xc16090]
mov al, byte [0xa77afc]
fld st(2)
fabs
fst qword [esp + 0xb0]
fld st(2)
fabs
fstp qword [esp + 0x78]
fcom qword [esp + 0x78]
neg al
sbb al, al
and eax, 0x40
mov byte [esp + 0x13], al
fnstsw ax
test ah, 0x41
je 0x403a2a
fstp st(0)
fld qword [esp + 0x78]
fld st(1)
fabs
fstp qword [esp + 0x90]
fcom qword [esp + 0x90]
fnstsw ax
test ah, 0x41
je 0x403a4c
fstp st(0)
fld qword [esp + 0x90]
fld st(0)
fsub qword [esp + 0xb0]
mov ecx, 1
or esi, 0xffffffff
fcomp qword [0x46c520]
fnstsw ax
test cl, ah
je 0x403a8a
fld st(3)
fcomp qword [0x46c4c0]
fnstsw ax
test ah, 0x41
jne 0x403a81
mov dword [esp + 0x98], esi
jmp 0x403a91
mov dword [esp + 0x98], ecx
jmp 0x403a91
mov dword [esp + 0x98], edx
fld st(0)
fsub qword [esp + 0x78]
fcomp qword [0x46c520]
fnstsw ax
test ah, 1
je 0x403ac5
fld st(2)
fcomp qword [0x46c4c0]
fnstsw ax
test ah, 0x41
jne 0x403abc
mov dword [esp + 0xa4], esi
jmp 0x403acc
mov dword [esp + 0xa4], ecx
jmp 0x403acc
mov dword [esp + 0xa4], edx
fld st(0)
fsub qword [esp + 0x90]
fcomp qword [0x46c520]
fnstsw ax
test ah, 1
je 0x403b03
fld st(1)
fcomp qword [0x46c4c0]
fnstsw ax
test ah, 0x41
jne 0x403afa
mov dword [esp + 0x88], esi
jmp 0x403b0a
mov dword [esp + 0x88], ecx
jmp 0x403b0a
mov dword [esp + 0x88], edx
mov eax, dword [ebp + 8]
fdivr qword [0x46c4e0]
cmp eax, 0x10
jne 0x403b2c
mov dword [0x5e59e8], 0
mov dword [0x5e59ec], 0x3ff00000
fmul qword [0x5e59e8]
fld st(0)
fmul st(4)
fmul qword [0x46c518]
call fcn.00460494
fld st(0)
fmul st(3)
mov esi, eax
mov dword [esp + 0x68], esi
fmul qword [0x46c518]
call fcn.00460494
fmul st(1)
mov ebx, eax
mov dword [esp + 0x64], ebx
fmul qword [0x46c518]
call fcn.00460494
mov ecx, eax
mov edx, ebx
mov dword [esp + 0x60], eax
imul ecx, eax
fstp st(0)
fstp st(0)
fstp st(0)
imul edx, ebx
mov eax, esi
add ecx, edx
imul eax, esi
add ecx, eax
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fsqrt
fdivr qword [0x46c518]
fstp qword [esp + 0x78]
fld qword [0x46c4e0]
fdiv qword [esp + 0x78]
fst qword [esp + 0x58]
fmul qword [0x46c510]
call fcn.00460494
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
cmp eax, 0x13
mov dword [esp + 0x14], 0xbe3d40
mov dword [esp + 0x18], 0xbd3d20
ja case.0x403bd3.7
jmp dword [eax*4 + 0x4061a0]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
push ecx
push edx
call fcn.00407040
add esp, 8
mov dword [esp + 0x34], 0x10000
mov al, byte [edi]
mov cl, byte [esp + 0x13]
cmp al, 2
jne 0x403dd7
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov dword [esp + 0x2c], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
fld dword [edi + 0xe]
fmul qword [0x46c510]
mov bx, ax
xor esi, esi
inc ebx
mov dword [esp + 0x4c], 0x400
mov dword [esp + 0x3c], esi
mov dword [esp + 0x24], esi
call fcn.00460494
cmp bx, si
mov dword [esp + 0x44], eax
mov dword [esp + 0x84], esi
jbe 0x403d82
mov eax, dword [esp + 0x2c]
mov edx, dword [0xbc3ac8]
mov ecx, dword [esp + 0x28]
shr eax, 0xa
shr ecx, 0xa
mov eax, dword [edx + eax*4]
mov edx, dword [0xbc3ac4]
mov esi, dword [edx + ecx*4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0xbc3ac0]
add eax, esi
shr ecx, 0xa
mov ecx, dword [edx + ecx*4]
mov dl, byte [eax + ecx]
mov byte [esp + 0x40], dl
mov edx, dword [esp + 0x40]
and edx, 0xff
mov esi, dword [edx*4 + 0xc14260]
test esi, esi
je 0x403d32
mov ecx, esi
xor eax, eax
imul ecx, dword [esp + 0x4c]
mov al, byte [edx + 0xc15e80]
mov edx, dword [esp + 0x3c]
imul eax, ecx
add edx, eax
xor eax, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x44]
and edx, 0xffff
shr edx, 7
mov al, byte [edx + 0xc160a0]
imul eax, ecx
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, 0x400
sub ecx, esi
imul ecx, dword [esp + 0x4c]
shr ecx, 0xa
mov dword [esp + 0x4c], ecx
je 0x403d82
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x64]
add esi, edx
mov edx, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x84]
add esi, edx
inc eax
mov dword [esp + 0x1c], esi
cmp ax, bx
mov dword [esp + 0x84], eax
jb 0x403c91
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
shr eax, 0x14
shr ecx, 0x14
cmp al, 3
mov byte [esp + 0x38], al
mov byte [esp + 0x30], cl
jae 0x403da1
mov byte [esp + 0x38], 1
cmp cl, 3
jae 0x403dab
mov byte [esp + 0x30], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
and eax, 0xff
mov cl, byte [eax + 0xc14140]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
and edx, 0xff
mov dword [esp + 0x14], eax
mov cl, byte [edx + 0xc14040]
jmp 0x403de2
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
add edi, 0x16
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x403bf4
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x34], 0x10000
cmp byte [edi], 2
jne 0x403fbd
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov dword [esp + 0x2c], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor bl, bl
test ax, ax
mov esi, 0x400
mov dword [esp + 0x3c], 0
mov byte [esp + 0x30], bl
jbe 0x403f69
mov ecx, dword [esp + 0x28]
and eax, 0xffff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [0xbc3ac8]
shr eax, 0xa
shr ecx, 0xa
mov eax, dword [edx + eax*4]
mov edx, dword [0xbc3ac4]
add eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0xbc3ac0]
shr ecx, 0xa
test esi, esi
mov ecx, dword [edx + ecx*4]
mov dl, byte [eax + ecx]
mov byte [esp + 0x40], dl
mov eax, dword [esp + 0x40]
je 0x403f21
mov ecx, eax
and ecx, 0xff
mov edx, dword [ecx*4 + 0xc14260]
test edx, edx
je 0x403f21
xor ebx, ebx
mov bl, byte [ecx + 0xc15e80]
mov ecx, dword [esp + 0x3c]
imul ebx, edx
imul ebx, esi
add ecx, ebx
mov bl, byte [esp + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, 0x400
sub ecx, edx
imul ecx, esi
shr ecx, 0xa
mov esi, ecx
and eax, 0xff
mov al, byte [eax + 0xc15f80]
cmp al, bl
jbe 0x403f36
mov bl, al
mov byte [esp + 0x30], bl
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
add ecx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
dec edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], edx
jne 0x403eac
mov eax, dword [esp + 0x3c]
shr eax, 0x14
cmp al, 3
mov byte [esp + 0x38], al
jae 0x403f7d
mov byte [esp + 0x38], 1
test bl, bl
jne 0x403f86
mov byte [esp + 0x30], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
and eax, 0xff
and edx, 0xff
mov cl, byte [eax + 0xc14140]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
mov cl, byte [edx + 0xc14040]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x403fd7
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x34]
add edi, 0x16
dec eax
mov dword [esp + 0x34], eax
jne 0x403e1e
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x34], 0x10000
cmp byte [edi], 2
jne 0x4041a9
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov dword [esp + 0x2c], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
or bl, 0xff
test ax, ax
mov esi, 0x400
mov dword [esp + 0x3c], 0
mov byte [esp + 0x24], bl
jbe 0x404154
mov ecx, dword [esp + 0x28]
and eax, 0xffff
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [0xbc3ac8]
shr eax, 0xa
shr ecx, 0xa
mov eax, dword [edx + eax*4]
mov edx, dword [0xbc3ac4]
add eax, dword [edx + ecx*4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [0xbc3ac0]
shr ecx, 0xa
test esi, esi
mov ecx, dword [edx + ecx*4]
mov dl, byte [eax + ecx]
mov byte [esp + 0x40], dl
mov eax, dword [esp + 0x40]
je 0x40410c
mov ecx, eax
and ecx, 0xff
mov edx, dword [ecx*4 + 0xc14260]
test edx, edx
je 0x40410c
xor ebx, ebx
mov bl, byte [ecx + 0xc15e80]
mov ecx, dword [esp + 0x3c]
imul ebx, edx
imul ebx, esi
add ecx, ebx
mov bl, byte [esp + 0x24]
mov dword [esp + 0x3c], ecx
mov ecx, 0x400
sub ecx, edx
imul ecx, esi
shr ecx, 0xa
mov esi, ecx
and eax, 0xff
mov al, byte [eax + 0xc15f80]
cmp al, bl
jae 0x404121
mov bl, al
mov byte [esp + 0x24], bl
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
add ecx, edx
mov edx, dword [esp + 0x60]
add dword [esp + 0x1c], edx
mov edx, dword [esp + 0x48]
dec edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x48], edx
jne 0x404097
mov eax, dword [esp + 0x3c]
shr eax, 0x14
cmp al, 3
mov byte [esp + 0x38], al
jae 0x404168
mov byte [esp + 0x38], 1
cmp bl, 0xff
jne 0x404172
mov byte [esp + 0x24], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
and eax, 0xff
and edx, 0xff
mov cl, byte [eax + 0xc14140]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
mov cl, byte [edx + 0xc14040]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x4041c3
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x34]
add edi, 0x16
dec eax
mov dword [esp + 0x34], eax
jne 0x404008
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x34], 0x10000
cmp byte [edi], 2
jne 0x4043e2
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov esi, eax
mov dword [esp + 0x2c], esi
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor ebx, ebx
test ax, ax
mov ecx, 0x400
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], ebx
jbe 0x40433c
and eax, 0xffff
mov dword [esp + 0x48], eax
mov eax, dword [0xbc3ac8]
mov edx, dword [esp + 0x28]
shr esi, 0xa
shr edx, 0xa
mov eax, dword [eax + esi*4]
mov esi, dword [0xbc3ac4]
add eax, dword [esi + edx*4]
mov edx, dword [esp + 0x1c]
mov esi, dword [0xbc3ac0]
shr edx, 0xa
test ecx, ecx
mov edx, dword [esi + edx*4]
mov al, byte [eax + edx]
mov byte [esp + 0x40], al
mov eax, dword [esp + 0x40]
je 0x4042f0
mov esi, eax
and esi, 0xff
mov edx, dword [esi*4 + 0xc14260]
test edx, edx
je 0x4042f0
xor ebx, ebx
mov bl, byte [esi + 0xc15e80]
mov esi, dword [esp + 0x3c]
imul ebx, edx
imul ebx, ecx
add esi, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x3c], esi
mov esi, 0x400
sub esi, edx
imul esi, ecx
shr esi, 0xa
mov ecx, esi
mov esi, dword [esp + 0x2c]
and eax, 0xff
movzx dx, byte [eax + 0xc15f80]
mov eax, dword [esp + 0x68]
add ebx, edx
mov edx, dword [esp + 0x28]
add esi, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x44], ebx
add edx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x60]
add eax, edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x48], eax
jne 0x404278
mov eax, dword [esp + 0x3c]
shr eax, 0x14
cmp al, 3
mov byte [esp + 0x38], al
jae 0x404350
mov byte [esp + 0x38], 1
and ebx, 0xffff
mov dword [esp + 0x50], ebx
fild dword [esp + 0x50]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov cx, ax
mov eax, 0x80808081
and ecx, 0xffff
shl ecx, 2
mul ecx
shr edx, 7
test dx, dx
jne 0x40438f
mov eax, 1
jmp 0x4043ae
cmp dx, 0x3ff
jbe 0x4043a0
movzx ax, byte [0xc14e5f]
jmp 0x4043ae
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
and edx, 0xff
inc ecx
and eax, 0xffff
mov dword [esp + 0x14], ecx
mov dl, byte [edx + 0xc14140]
mov byte [ecx - 1], dl
mov cl, byte [eax + 0xc14040]
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x4043fc
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x34]
add edi, 0x16
dec eax
mov dword [esp + 0x34], eax
jne 0x4041f4
jmp case.0x403bd3.7
mov dword [esp + 0x34], 0x10000
cmp byte [edi], 2
jne 0x404567
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov esi, eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov ebx, eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor dl, dl
test ax, ax
mov byte [esp + 0x30], dl
mov byte [esp + 0x24], 0xff
jbe 0x404521
and eax, 0xffff
mov dword [esp + 0x48], eax
mov ecx, dword [0xbc3ac8]
mov edx, esi
shr edx, 0xa
mov eax, ebx
mov edx, dword [ecx + edx*4]
mov ecx, dword [0xbc3ac4]
shr eax, 0xa
add edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [0xbc3ac0]
shr eax, 0xa
mov eax, dword [ecx + eax*4]
mov cl, byte [edx + eax]
mov dl, byte [esp + 0x30]
mov byte [esp + 0x40], cl
mov eax, dword [esp + 0x40]
and eax, 0xff
mov cl, byte [eax + 0xc15e80]
cmp cl, dl
jbe 0x4044e5
mov dl, cl
mov byte [esp + 0x30], dl
mov al, byte [eax + 0xc15f80]
mov cl, byte [esp + 0x24]
cmp al, cl
jae 0x4044f9
mov cl, al
mov byte [esp + 0x24], cl
mov eax, dword [esp + 0x68]
add esi, eax
mov eax, dword [esp + 0x64]
add ebx, eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x48], eax
jne 0x404495
cmp cl, 0xff
jne 0x404526
mov byte [esp + 0x24], 1
test dl, dl
jne 0x40452f
mov byte [esp + 0x30], 1
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
and ecx, 0xff
inc eax
mov dword [esp + 0x14], eax
mov dl, byte [ecx + 0xc14140]
mov byte [eax - 1], dl
mov eax, dword [esp + 0x24]
and eax, 0xff
mov cl, byte [eax + 0xc14040]
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x404581
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x34]
add edi, 0x16
dec eax
mov dword [esp + 0x34], eax
jne 0x40441b
jmp case.0x403bd3.7
mov dword [esp + 0x34], 0x10000
cmp byte [edi], 2
jne 0x404740
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov esi, eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov ebx, eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor ecx, ecx
test ax, ax
mov byte [esp + 0x30], 0
mov dword [esp + 0x44], ecx
jbe 0x4046a3
and eax, 0xffff
mov dword [esp + 0x48], eax
mov ecx, dword [0xbc3ac8]
mov edx, esi
shr edx, 0xa
mov eax, ebx
mov edx, dword [ecx + edx*4]
mov ecx, dword [0xbc3ac4]
shr eax, 0xa
add edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [0xbc3ac0]
shr eax, 0xa
mov eax, dword [ecx + eax*4]
mov cl, byte [edx + eax]
mov byte [esp + 0x40], cl
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
and eax, 0xff
movzx dx, byte [eax + 0xc15e80]
mov al, byte [eax + 0xc15f80]
add ecx, edx
mov dl, byte [esp + 0x30]
mov dword [esp + 0x44], ecx
cmp al, dl
jbe 0x40467a
mov byte [esp + 0x30], al
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add esi, edx
mov edx, dword [esp + 0x1c]
add ebx, eax
mov eax, dword [esp + 0x60]
add edx, eax
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], eax
jne 0x40461a
and ecx, 0xffff
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov cx, ax
mov eax, 0x80808081
and ecx, 0xffff
shl ecx, 2
mul ecx
shr edx, 7
test dx, dx
jne 0x4046e2
mov eax, 1
jmp 0x404701
cmp dx, 0x3ff
jbe 0x4046f3
movzx ax, byte [0xc14e5f]
jmp 0x404701
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
mov cl, byte [esp + 0x30]
test cl, cl
jne 0x40470e
mov byte [esp + 0x30], 1
and eax, 0xffff
mov dl, byte [eax + 0xc14140]
mov eax, dword [esp + 0x14]
mov byte [eax], dl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
and eax, 0xff
mov cl, byte [eax + 0xc14040]
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x40475a
mov ecx, dword [esp + 0x14]
mov al, byte [esp + 0x13]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x34]
add edi, 0x16
dec eax
mov dword [esp + 0x34], eax
jne 0x4045a0
jmp case.0x403bd3.7
mov dword [esp + 0x34], 0x10000
mov al, byte [edi]
mov cl, byte [esp + 0x13]
cmp al, 2
jne 0x404912
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov esi, eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov ebx, eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor ecx, ecx
test ax, ax
mov byte [esp + 0x24], 0xff
mov dword [esp + 0x44], ecx
jbe 0x404881
and eax, 0xffff
mov dword [esp + 0x48], eax
mov ecx, dword [0xbc3ac8]
mov edx, esi
shr edx, 0xa
mov eax, ebx
mov edx, dword [ecx + edx*4]
mov ecx, dword [0xbc3ac4]
shr eax, 0xa
add edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [0xbc3ac0]
shr eax, 0xa
mov eax, dword [ecx + eax*4]
mov cl, byte [edx + eax]
mov byte [esp + 0x40], cl
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
and eax, 0xff
movzx dx, byte [eax + 0xc15e80]
mov al, byte [eax + 0xc15f80]
add ecx, edx
mov dl, byte [esp + 0x24]
mov dword [esp + 0x44], ecx
cmp al, dl
jae 0x404858
mov byte [esp + 0x24], al
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add esi, edx
mov edx, dword [esp + 0x1c]
add ebx, eax
mov eax, dword [esp + 0x60]
add edx, eax
mov eax, dword [esp + 0x48]
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], eax
jne 0x4047f8
and ecx, 0xffff
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov cx, ax
mov eax, 0x80808081
and ecx, 0xffff
shl ecx, 2
mul ecx
shr edx, 7
test dx, dx
jne 0x4048c0
mov eax, 1
jmp 0x4048df
cmp dx, 0x3ff
jbe 0x4048d1
movzx ax, byte [0xc14e5f]
jmp 0x4048df
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
cmp byte [esp + 0x24], 0xff
jne 0x4048eb
mov byte [esp + 0x24], 1
and eax, 0xffff
mov dl, byte [eax + 0xc14140]
mov eax, dword [esp + 0x14]
mov byte [eax], dl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
and eax, 0xff
mov cl, byte [eax + 0xc14040]
jmp 0x40491d
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
add edi, 0x16
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x404779
jmp case.0x403bd3.7
fld qword [0xc16080]
fld qword [0xc16088]
fld qword [0xc16090]
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
fcom qword [0x46c500]
fnstsw ax
test ah, 0x41
je 0x404978
fstp st(0)
fld qword [0x46c500]
fxch st(3)
fdiv st(3)
fmul qword [0x46c4f8]
call fcn.00460494
fxch st(1)
fdiv st(2)
mov dword [esp + 0xb0], eax
fmul qword [0x46c4f8]
call fcn.00460494
fdiv st(1)
mov dword [esp + 0xbc], eax
fmul qword [0x46c4f8]
call fcn.00460494
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x58]
push edx
push eax
fstp st(0)
call fcn.00407040
add esp, 8
call fcn.00408b20
mov esi, dword [esp + 0x9c]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x50], 0x10000
mov cl, byte [edi]
mov al, byte [esp + 0x13]
cmp cl, 2
jne 0x404ebe
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov dword [esp + 0x2c], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
mov dword [esp + 0x74], eax
mov eax, dword [0x870e38]
test eax, eax
je 0x404b3e
mov ecx, dword [esp + 0x6c]
cmp byte [ecx], 0
je 0x404b3e
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x98]
shr esi, 0xa
shr ebx, 0xa
shr eax, 0xa
test ecx, ecx
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x34], eax
je 0x404aca
lea edx, [esi + ecx]
mov ecx, dword [0xbd3d18]
mov edx, dword [ecx + edx*4]
mov ecx, dword [0xbd3d14]
add edx, dword [ecx + ebx*4]
mov ecx, dword [0xbd3d10]
mov ecx, dword [ecx + eax*4]
add ecx, edx
mov dl, byte [ecx]
mov byte [esp + 0x23], dl
mov dl, byte [esp + 0x13]
mov byte [ecx], dl
mov ecx, dword [esp + 0xa4]
test ecx, ecx
je 0x404b03
mov edx, dword [0xbd3d14]
add ecx, ebx
mov ecx, dword [edx + ecx*4]
mov edx, dword [0xbd3d18]
add ecx, dword [edx + esi*4]
mov edx, dword [0xbd3d10]
mov edx, dword [edx + eax*4]
add ecx, edx
mov dl, byte [ecx]
mov byte [esp + 0x8f], dl
mov dl, byte [esp + 0x13]
mov byte [ecx], dl
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x404b3e
add eax, ecx
mov ecx, dword [0xbd3d10]
mov edx, dword [ecx + eax*4]
mov eax, dword [0xbd3d18]
mov ecx, dword [eax + esi*4]
add edx, ecx
mov ecx, dword [0xbd3d14]
mov eax, dword [ecx + ebx*4]
mov cl, byte [eax + edx]
add eax, edx
mov dl, byte [esp + 0x13]
mov byte [esp + 0x8e], cl
mov byte [eax], dl
fld dword [edi + 0xe]
fmul qword [0x46c510]
xor eax, eax
mov dword [esp + 0x4c], 0x400
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], eax
call fcn.00460494
mov dword [esp + 0x44], eax
xor eax, eax
cmp word [esp + 0x74], ax
mov dword [esp + 0x54], eax
mov dword [esp + 0x84], eax
jbe 0x404da0
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
mov esi, dword [0xbd3d10]
mov edx, dword [0xbd3d14]
mov eax, dword [esp + 0x2c]
shr edi, 0xa
shr ecx, 0xa
mov esi, dword [esi + edi*4]
mov edx, dword [edx + ecx*4]
mov dword [esp + 0xa8], esi
mov dword [esp + 0x58], edx
add esi, edx
mov edx, dword [0xbd3d18]
shr eax, 0xa
mov edx, dword [edx + eax*4]
mov bl, byte [esi + edx]
mov byte [esp + 0x70], bl
mov ebx, dword [esp + 0x70]
and ebx, 0xff
mov dword [esp + 0x90], ebx
cmp dword [ebx*4 + 0xc14260], 0
je 0x404d3c
mov ebx, dword [esp + 0xa8]
add ebx, edx
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x58]
add edx, ebx
xor ebx, ebx
mov dword [esp + 0x58], edx
mov edx, dword [0xbd3d18]
mov edx, dword [edx + eax*4 + 4]
mov bl, byte [edx + esi]
mov edx, ebx
mov ebx, dword [0xbd3d18]
mov eax, dword [ebx + eax*4 - 4]
xor ebx, ebx
mov bl, byte [eax + esi]
mov eax, dword [0xbd3d14]
sub edx, ebx
xor ebx, ebx
mov esi, dword [eax + ecx*4 + 4]
mov eax, dword [esp + 0xa8]
mov bl, byte [esi + eax]
mov esi, ebx
mov ebx, dword [0xbd3d14]
mov ecx, dword [ebx + ecx*4 - 4]
xor ebx, ebx
mov bl, byte [ecx + eax]
mov eax, dword [0xbd3d10]
sub esi, ebx
xor ebx, ebx
mov ecx, dword [eax + edi*4 + 4]
mov eax, dword [esp + 0x58]
mov bl, byte [ecx + eax]
mov ecx, ebx
mov ebx, dword [0xbd3d10]
mov edi, dword [ebx + edi*4 - 4]
xor ebx, ebx
mov bl, byte [edi + eax]
mov edi, esi
sub ecx, ebx
imul edi, esi
mov eax, ecx
imul esi, dword [esp + 0xbc]
imul eax, ecx
imul ecx, dword [esp + 0xac]
add eax, edi
mov edi, edx
imul edi, edx
imul edx, dword [esp + 0xb0]
add eax, edi
add ecx, esi
add ecx, edx
mov edx, dword [eax*4 + 0xc163e0]
xor eax, eax
imul edx, ecx
mov ecx, dword [esp + 0x54]
sar edx, 0x10
and edx, 0xffff
mov ax, word [edx*2 + 0xbf4040]
cmp eax, ecx
mov edx, eax
ja 0x404cbe
mov edx, ecx
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x4c]
and ebx, 0xffff
mov ecx, dword [edi*4 + 0xc14260]
mov dword [esp + 0x54], eax
shr ebx, 7
mov eax, ecx
mov ebx, dword [ebx*4 + 0xc14e60]
imul eax, esi
imul ebx, edx
shr ebx, 0x17
imul ebx, eax
mov edx, dword [esp + 0x24]
add edx, ebx
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x24], edx
xor edx, edx
mov dl, byte [edi + 0xc15e80]
mov edi, dword [esp + 0x3c]
imul edx, eax
mov eax, 0x400
add edi, edx
sub eax, ecx
mov dword [esp + 0x3c], edi
imul eax, esi
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x9c]
shr eax, 0xa
mov dword [esp + 0x4c], eax
je 0x404da0
jmp 0x404d4e
mov ebx, dword [esp + 0xa0]
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x68]
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x64]
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x60]
add eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
inc eax
cmp ax, word [esp + 0x74]
mov dword [esp + 0x84], eax
jb 0x404b7a
mov eax, dword [0x870e38]
test eax, eax
je 0x404e5d
mov edx, dword [esp + 0x6c]
cmp byte [edx], 0
je 0x404e5d
mov eax, dword [esp + 0x98]
test eax, eax
je 0x404dee
mov ecx, dword [0xbd3d18]
add eax, esi
mov edx, dword [ecx + eax*4]
mov eax, dword [0xbd3d14]
mov ecx, dword [eax + ebx*4]
mov eax, dword [esp + 0x34]
add edx, ecx
mov ecx, dword [0xbd3d10]
mov ecx, dword [ecx + eax*4]
mov al, byte [esp + 0x23]
mov byte [edx + ecx], al
mov eax, dword [esp + 0xa4]
test eax, eax
je 0x404e27
mov edx, dword [0xbd3d14]
lea ecx, [ebx + eax]
mov eax, dword [edx + ecx*4]
mov ecx, dword [0xbd3d18]
mov edx, dword [ecx + esi*4]
mov ecx, dword [esp + 0x34]
add eax, edx
mov edx, dword [0xbd3d10]
mov edx, dword [edx + ecx*4]
mov cl, byte [esp + 0x8f]
mov byte [eax + edx], cl
mov eax, dword [esp + 0x88]
test eax, eax
je 0x404e5d
mov edx, dword [esp + 0x34]
add edx, eax
mov eax, dword [0xbd3d10]
mov ecx, dword [eax + edx*4]
mov edx, dword [0xbd3d18]
mov eax, dword [edx + esi*4]
add ecx, eax
mov eax, dword [0xbd3d14]
mov edx, dword [eax + ebx*4]
mov al, byte [esp + 0x8e]
mov byte [ecx + edx], al
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x24]
shr eax, 0x14
shr ecx, 0x14
cmp al, 3
mov byte [esp + 0x38], al
mov byte [esp + 0x30], cl
jae 0x404e7c
mov byte [esp + 0x38], 1
cmp cl, 3
jae 0x404e86
mov byte [esp + 0x30], 1
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
and ecx, 0xff
inc eax
mov dword [esp + 0x14], eax
mov dl, byte [ecx + 0xc14140]
mov byte [eax - 1], dl
mov eax, dword [esp + 0x30]
and eax, 0xff
mov cl, byte [eax + 0xc14040]
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x404ed4
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x50]
add edi, 0x16
inc ecx
dec eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x50], eax
jne 0x4049e7
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x54], 0x10000
mov al, byte [edi]
mov cl, byte [esp + 0x13]
cmp al, 2
jne 0x4050ec
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov ebx, eax
mov dword [esp + 0x2c], ebx
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov esi, eax
mov dword [esp + 0x28], esi
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor cl, cl
test ax, ax
mov dword [esp + 0x4c], 0x400
mov dword [esp + 0x3c], 0
mov byte [esp + 0x30], cl
jbe 0x4050a2
mov edx, dword [esp + 0x1c]
and eax, 0xffff
mov dword [esp + 0x50], eax
mov ecx, esi
mov esi, edx
mov edx, dword [0xbc3ac0]
mov eax, ebx
mov ebx, dword [0xbc3ac4]
shr esi, 0xa
shr ecx, 0xa
shl esi, 2
shl ecx, 2
mov edx, dword [esi + edx]
add edx, dword [ecx + ebx]
mov ebx, dword [0xbc3ac8]
shr eax, 0xa
shl eax, 2
mov ebx, dword [eax + ebx]
mov dl, byte [edx + ebx]
mov byte [esp + 0x40], dl
mov edx, dword [0xbd3d10]
mov edx, dword [esi + edx]
mov esi, dword [0xbd3d14]
mov ebx, dword [ecx + esi]
mov ecx, dword [0xbd3d18]
add edx, ebx
mov eax, dword [eax + ecx]
mov cl, byte [edx + eax]
mov eax, dword [esp + 0x4c]
test eax, eax
mov byte [esp + 0x70], cl
je 0x40504c
mov esi, dword [esp + 0x70]
and esi, 0xff
mov ecx, dword [esi*4 + 0xc14260]
test ecx, ecx
je 0x40504c
xor edx, edx
mov ebx, dword [esp + 0x3c]
mov dl, byte [esi + 0xc15e80]
imul edx, ecx
imul edx, eax
add ebx, edx
mov edx, 0x400
sub edx, ecx
mov dword [esp + 0x3c], ebx
imul edx, eax
shr edx, 0xa
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x40]
mov cl, byte [esp + 0x30]
and eax, 0xff
mov al, byte [eax + 0xc15f80]
cmp al, cl
jbe 0x405069
mov cl, al
mov byte [esp + 0x30], cl
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
add ebx, esi
mov esi, dword [esp + 0x28]
add esi, edx
mov edx, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x50], eax
jne 0x404fa8
mov eax, dword [esp + 0x3c]
shr eax, 0x14
cmp al, 3
mov byte [esp + 0x38], al
jae 0x4050b6
mov byte [esp + 0x38], 1
test cl, cl
jne 0x4050bf
mov byte [esp + 0x30], 1
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
and ecx, 0xff
inc eax
mov dword [esp + 0x14], eax
mov dl, byte [ecx + 0xc14140]
mov byte [eax - 1], dl
mov eax, dword [esp + 0x30]
and eax, 0xff
mov cl, byte [eax + 0xc14040]
jmp 0x4050f7
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
add edi, 0x16
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
dec eax
mov dword [esp + 0x54], eax
jne 0x404f12
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x54], 0x10000
mov al, byte [edi]
mov cl, byte [esp + 0x13]
cmp al, 2
jne 0x40530f
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov ebx, eax
mov dword [esp + 0x2c], ebx
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov esi, eax
mov dword [esp + 0x28], esi
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
or cl, 0xff
test ax, ax
mov dword [esp + 0x4c], 0x400
mov dword [esp + 0x3c], 0
mov byte [esp + 0x24], cl
jbe 0x4052c4
mov edx, dword [esp + 0x1c]
and eax, 0xffff
mov dword [esp + 0x50], eax
mov ecx, esi
mov esi, edx
mov edx, dword [0xbc3ac0]
mov eax, ebx
mov ebx, dword [0xbc3ac4]
shr esi, 0xa
shr ecx, 0xa
shl esi, 2
shl ecx, 2
mov edx, dword [esi + edx]
add edx, dword [ecx + ebx]
mov ebx, dword [0xbc3ac8]
shr eax, 0xa
shl eax, 2
mov ebx, dword [eax + ebx]
mov dl, byte [edx + ebx]
mov byte [esp + 0x40], dl
mov edx, dword [0xbd3d10]
mov edx, dword [esi + edx]
mov esi, dword [0xbd3d14]
mov ebx, dword [ecx + esi]
mov ecx, dword [0xbd3d18]
add edx, ebx
mov eax, dword [eax + ecx]
mov cl, byte [edx + eax]
mov eax, dword [esp + 0x4c]
test eax, eax
mov byte [esp + 0x70], cl
je 0x40526e
mov esi, dword [esp + 0x70]
and esi, 0xff
mov ecx, dword [esi*4 + 0xc14260]
test ecx, ecx
je 0x40526e
xor edx, edx
mov ebx, dword [esp + 0x3c]
mov dl, byte [esi + 0xc15e80]
imul edx, ecx
imul edx, eax
add ebx, edx
mov edx, 0x400
sub edx, ecx
mov dword [esp + 0x3c], ebx
imul edx, eax
shr edx, 0xa
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x40]
mov cl, byte [esp + 0x24]
and eax, 0xff
mov al, byte [eax + 0xc15f80]
cmp al, cl
jae 0x40528b
mov cl, al
mov byte [esp + 0x24], cl
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
add ebx, esi
mov esi, dword [esp + 0x28]
add esi, edx
mov edx, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x50], eax
jne 0x4051ca
mov eax, dword [esp + 0x3c]
shr eax, 0x14
cmp al, 3
mov byte [esp + 0x38], al
jae 0x4052d8
mov byte [esp + 0x38], 1
cmp cl, 0xff
jne 0x4052e2
mov byte [esp + 0x24], 1
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
and ecx, 0xff
inc eax
mov dword [esp + 0x14], eax
mov dl, byte [ecx + 0xc14140]
mov byte [eax - 1], dl
mov eax, dword [esp + 0x24]
and eax, 0xff
mov cl, byte [eax + 0xc14040]
jmp 0x40531a
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
add edi, 0x16
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
dec eax
mov dword [esp + 0x54], eax
jne 0x405133
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x54], 0x10000
mov al, byte [edi]
mov cl, byte [esp + 0x13]
cmp al, 2
jne 0x405581
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov ebx, eax
mov dword [esp + 0x2c], ebx
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov esi, eax
mov dword [esp + 0x28], esi
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor ecx, ecx
cmp ax, cx
mov dword [esp + 0x4c], 0x400
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], ecx
jbe 0x4054e0
mov edx, dword [esp + 0x1c]
and eax, 0xffff
mov dword [esp + 0x50], eax
mov ecx, esi
mov esi, edx
mov edx, dword [0xbc3ac0]
mov eax, ebx
mov ebx, dword [0xbc3ac4]
shr esi, 0xa
shr ecx, 0xa
shl esi, 2
shl ecx, 2
mov edx, dword [esi + edx]
add edx, dword [ecx + ebx]
mov ebx, dword [0xbc3ac8]
shr eax, 0xa
shl eax, 2
mov ebx, dword [eax + ebx]
mov dl, byte [edx + ebx]
mov byte [esp + 0x40], dl
mov edx, dword [0xbd3d10]
mov edx, dword [esi + edx]
mov esi, dword [0xbd3d14]
mov ebx, dword [ecx + esi]
mov ecx, dword [0xbd3d18]
add edx, ebx
mov eax, dword [eax + ecx]
mov cl, byte [edx + eax]
mov eax, dword [esp + 0x4c]
test eax, eax
mov byte [esp + 0x70], cl
je 0x40548c
mov esi, dword [esp + 0x70]
and esi, 0xff
mov ecx, dword [esi*4 + 0xc14260]
test ecx, ecx
je 0x40548c
xor edx, edx
mov ebx, dword [esp + 0x3c]
mov dl, byte [esi + 0xc15e80]
imul edx, ecx
imul edx, eax
add ebx, edx
mov edx, 0x400
sub edx, ecx
mov dword [esp + 0x3c], ebx
imul edx, eax
shr edx, 0xa
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x68]
and eax, 0xff
add ebx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
movzx dx, byte [eax + 0xc15f80]
mov eax, dword [esp + 0x60]
add ecx, edx
mov edx, dword [esp + 0x64]
mov dword [esp + 0x44], ecx
add esi, edx
mov edx, dword [esp + 0x1c]
add edx, eax
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x50], eax
jne 0x4053e8
mov eax, dword [esp + 0x3c]
shr eax, 0x14
cmp al, 3
mov byte [esp + 0x38], al
jae 0x4054f4
mov byte [esp + 0x38], 1
and ecx, 0xffff
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov cx, ax
mov eax, 0x80808081
and ecx, 0xffff
shl ecx, 2
mul ecx
shr edx, 7
test dx, dx
jne 0x405539
mov eax, 1
jmp 0x405558
cmp dx, 0x3ff
jbe 0x40554a
movzx ax, byte [0xc14e5f]
jmp 0x405558
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
and edx, 0xff
inc ecx
and eax, 0xffff
mov dword [esp + 0x14], ecx
mov dl, byte [edx + 0xc14140]
mov byte [ecx - 1], dl
mov cl, byte [eax + 0xc14040]
jmp 0x40558c
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
add edi, 0x16
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
dec eax
mov dword [esp + 0x54], eax
jne 0x405356
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x50], 0x10000
mov al, byte [edi]
mov cl, byte [esp + 0x13]
cmp al, 2
jne 0x40590a
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov dword [esp + 0x2c], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
fld dword [edi + 0xe]
fmul qword [0x46c510]
mov si, ax
mov ebx, 0x80
inc esi
xor eax, eax
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x88], eax
mov byte [esp + 0x24], al
mov dword [esp + 0x44], eax
mov byte [esp + 0x23], al
call fcn.00460494
test si, si
mov dword [esp + 0x84], 0
jbe 0x405844
mov ecx, dword [esp + 0x2c]
mov esi, dword [0xbc3ac8]
mov edx, dword [esp + 0x28]
shr ecx, 0xa
shr edx, 0xa
mov ecx, dword [esi + ecx*4]
mov esi, dword [0xbc3ac4]
add ecx, dword [esi + edx*4]
mov edx, dword [esp + 0x1c]
mov esi, dword [0xbc3ac0]
shr edx, 0xa
mov edx, dword [esi + edx*4]
mov cl, byte [ecx + edx]
mov edx, dword [0xc14240]
mov byte [esp + 0x40], cl
mov ecx, dword [esp + 0x40]
and ecx, 0xff
movsx edx, byte [ecx + edx]
inc edx
cmp edx, 4
ja case.0x4056da.0
jmp dword [edx*4 + 0x4061f0]
mov esi, dword [ecx*4 + 0xc14260]
test esi, esi
je case.0x4056da.0
mov edx, esi
xor ebx, ebx
imul edx, dword [esp + 0x4c]
mov bl, byte [ecx + 0xc161e0]
mov ecx, dword [esp + 0x30]
imul ebx, edx
add ecx, ebx
xor ebx, ebx
mov dword [esp + 0x30], ecx
mov ecx, eax
and ecx, 0xffff
mov byte [esp + 0x23], 0x72
shr ecx, 7
mov bl, byte [ecx + 0xc160a0]
mov ecx, dword [esp + 0x6c]
imul ebx, edx
mov edx, 0x80
add ecx, ebx
sub edx, esi
mov ebx, dword [esp + 0x34]
imul edx, dword [esp + 0x4c]
shr edx, 7
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x4c], edx
jmp case.0x4056da.0
mov esi, dword [ecx*4 + 0xc14260]
test esi, esi
je case.0x4056da.0
mov edx, esi
mov byte [esp + 0x23], 0x62
imul edx, ebx
xor ebx, ebx
mov bl, byte [ecx + 0xc161e0]
mov ecx, dword [esp + 0x38]
imul ebx, edx
add ecx, ebx
xor ebx, ebx
mov dword [esp + 0x38], ecx
mov ecx, eax
and ecx, 0xffff
shr ecx, 7
mov bl, byte [ecx + 0xc160a0]
mov ecx, dword [esp + 0x88]
imul ebx, edx
add ecx, ebx
mov ebx, 0x80
sub ebx, esi
mov dword [esp + 0x88], ecx
imul ebx, dword [esp + 0x34]
shr ebx, 7
mov dword [esp + 0x34], ebx
jmp case.0x4056da.0
mov cl, byte [ecx + 0xc15e80]
mov dl, byte [esp + 0x24]
cmp cl, dl
jbe case.0x4056da.0
mov byte [esp + 0x24], cl
jmp case.0x4056da.0
movzx dx, byte [ecx + 0xc15e80]
add dword [esp + 0x44], edx
mov ecx, dword [esp + 0x4c]
test ecx, ecx
je 0x405937
test ebx, ebx
je 0x40596e
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x48]
add edx, ecx
mov ecx, dword [esp + 0x60]
add eax, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x64]
add esi, edx
mov edx, dword [esp + 0x1c]
add edx, ecx
mov ecx, dword [esp + 0x84]
inc ecx
mov dword [esp + 0x28], esi
cmp cx, word [esp + 0x74]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x84], ecx
jb 0x405685
mov al, byte [esp + 0x23]
cmp al, 0x62
je 0x40596e
cmp al, 0x72
je 0x405937
mov eax, dword [0xc15e60]
sub eax, 0
je 0x405904
sub eax, 2
je 0x4058ec
dec eax
jne 0x405920
mov eax, dword [esp + 0x44]
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov dx, ax
mov eax, 0x80808081
and edx, 0xffff
shl edx, 2
mul edx
shr edx, 7
test dx, dx
jne 0x4058aa
mov eax, 1
jmp 0x4058c9
cmp dx, 0x3ff
jbe 0x4058bb
movzx ax, byte [0xc14e5f]
jmp 0x4058c9
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
and eax, 0xffff
mov ecx, dword [esp + 0x14]
mov al, byte [eax + 0xc14140]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x405920
mov al, byte [esp + 0x24]
test al, al
jne 0x4058f9
mov byte [esp + 0x24], 1
mov eax, dword [esp + 0x24]
and eax, 0xff
jmp 0x4058ce
mov cl, byte [0xbf3f40]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x50]
add edi, 0x16
dec eax
mov dword [esp + 0x50], eax
jne 0x4055c8
jmp case.0x403bd3.7
mov eax, dword [esp + 0x30]
shr eax, 0xe
and eax, 0xff
mov cl, byte [eax + 0xbf3d60]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
shr eax, 0xe
and eax, 0xff
mov dl, byte [eax + 0xbf3d60]
mov eax, dword [esp + 0x18]
mov byte [eax], dl
jmp 0x40591b
mov eax, dword [esp + 0x38]
shr eax, 0xe
and eax, 0xff
mov cl, byte [eax + 0xbf3f40]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x88]
shr eax, 0xe
and eax, 0xff
mov dl, byte [eax + 0xbf3f40]
mov eax, dword [esp + 0x18]
mov byte [eax], dl
jmp 0x40591b
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
push eax
push ecx
call fcn.00407040
add esp, 8
mov dword [esp + 0x54], 0x10000
cmp byte [edi], 2
jne 0x405d48
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov ebx, eax
mov dword [esp + 0x2c], ebx
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
mov edx, 0x80
xor ecx, ecx
mov dword [esp + 0x4c], edx
test ax, ax
mov dword [esp + 0x30], 0
mov byte [esp + 0x48], 0
mov esi, edx
mov dword [esp + 0x38], 0
mov byte [esp + 0x34], 0
mov byte [esp + 0x24], 0
mov dword [esp + 0x44], ecx
mov byte [esp + 0x23], cl
jbe 0x405be4
and eax, 0xffff
mov dword [esp + 0x50], eax
mov ecx, dword [0xbc3ac8]
mov eax, dword [esp + 0x28]
shr ebx, 0xa
shr eax, 0xa
mov ecx, dword [ecx + ebx*4]
mov ebx, dword [0xbc3ac4]
add ecx, dword [ebx + eax*4]
mov eax, dword [esp + 0x1c]
mov ebx, dword [0xbc3ac0]
shr eax, 0xa
mov eax, dword [ebx + eax*4]
mov cl, byte [ecx + eax]
mov byte [esp + 0x40], cl
mov ecx, dword [0xc14240]
mov eax, dword [esp + 0x40]
and eax, 0xff
movsx ecx, byte [eax + ecx]
inc ecx
cmp ecx, 4
ja case.0x405abe.0
jmp dword [ecx*4 + 0x406204]
test edx, edx
je 0x405b08
test esi, esi
je 0x405b08
mov ecx, dword [eax*4 + 0xc14260]
test ecx, ecx
je 0x405b08
xor ebx, ebx
mov byte [esp + 0x23], 0x72
mov bl, byte [eax + 0xc161e0]
imul ebx, ecx
imul ebx, edx
mov edx, dword [esp + 0x30]
add edx, ebx
mov dword [esp + 0x30], edx
mov edx, 0x80
sub edx, ecx
imul edx, dword [esp + 0x4c]
shr edx, 7
mov dword [esp + 0x4c], edx
mov al, byte [eax + 0xc162e0]
mov cl, byte [esp + 0x48]
cmp al, cl
jbe case.0x405abe.0
mov byte [esp + 0x48], al
jmp case.0x405abe.0
test edx, edx
je 0x405b5f
test esi, esi
je 0x405b5f
mov ecx, dword [eax*4 + 0xc14260]
test ecx, ecx
je 0x405b5f
xor edx, edx
mov ebx, dword [esp + 0x38]
mov dl, byte [eax + 0xc161e0]
mov byte [esp + 0x23], 0x62
imul edx, ecx
imul edx, esi
add ebx, edx
mov edx, 0x80
sub edx, ecx
mov dword [esp + 0x38], ebx
imul edx, esi
shr edx, 7
mov esi, edx
mov edx, dword [esp + 0x4c]
mov al, byte [eax + 0xc162e0]
mov cl, byte [esp + 0x34]
cmp al, cl
jbe case.0x405abe.0
mov byte [esp + 0x34], al
jmp case.0x405abe.0
mov al, byte [eax + 0xc15e80]
mov cl, byte [esp + 0x24]
cmp al, cl
jbe case.0x405abe.0
mov byte [esp + 0x24], al
jmp case.0x405abe.0
movzx ax, byte [eax + 0xc15e80]
add dword [esp + 0x44], eax
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x2c], ebx
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x60]
add ecx, eax
mov eax, dword [esp + 0x50]
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], eax
jne 0x405a6e
mov al, byte [esp + 0x23]
cmp al, 0x62
je 0x405d0f
cmp al, 0x72
je 0x405cd5
mov ecx, dword [esp + 0x44]
mov eax, dword [0xc15e60]
sub eax, 0
je 0x405cb4
sub eax, 2
je 0x405c92
dec eax
jne 0x405d62
and ecx, 0xffff
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov cx, ax
mov eax, 0x80808081
and ecx, 0xffff
shl ecx, 2
mul ecx
shr edx, 7
test dx, dx
jne 0x405c55
mov eax, 1
and eax, 0xffff
mov al, byte [eax + 0xc14140]
jmp 0x405d4c
cmp dx, 0x3ff
jbe 0x405c74
movzx ax, byte [0xc14e5f]
and eax, 0xffff
mov al, byte [eax + 0xc14140]
jmp 0x405d4c
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
and eax, 0xffff
mov al, byte [eax + 0xc14140]
jmp 0x405d4c
mov al, byte [esp + 0x24]
test al, al
jne 0x405c9f
mov byte [esp + 0x24], 1
mov edx, dword [esp + 0x24]
and edx, 0xff
mov al, byte [edx + 0xc14140]
jmp 0x405d4c
mov eax, dword [esp + 0x14]
mov cl, byte [0xbf3f40]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x405d62
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
shr eax, 0xe
and eax, 0xff
and edx, 0xff
mov cl, byte [eax + 0xbf3d60]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
mov cl, byte [edx + 0xbf3d60]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x405d62
mov eax, dword [esp + 0x38]
shr eax, 0xe
and eax, 0xff
mov dl, byte [eax + 0xbf3f40]
mov eax, dword [esp + 0x14]
mov byte [eax], dl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
and eax, 0xff
mov cl, byte [eax + 0xbf3f40]
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
jmp 0x405d62
mov al, byte [esp + 0x13]
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x54]
add edi, 0x16
dec eax
mov dword [esp + 0x54], eax
jne 0x4059c5
jmp case.0x403bd3.7
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00407040
add esp, 8
mov dword [esp + 0x54], 0x10000
cmp byte [edi], 2
jne 0x406158
fld dword [edi + 2]
fmul qword [0x46c518]
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 6]
fmul qword [0x46c518]
mov dword [esp + 0x2c], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0xa]
fmul qword [0x46c518]
mov dword [esp + 0x28], eax
fadd qword [0x46c508]
call fcn.00460494
fld dword [edi + 0x12]
fsub dword [edi + 0xe]
mov dword [esp + 0x1c], eax
fmul qword [esp + 0x78]
call fcn.00460494
inc eax
xor ecx, ecx
mov ebx, 0x80
cmp ax, cx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x74], ecx
mov esi, ebx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x24], cl
mov dword [esp + 0x44], ecx
mov byte [esp + 0x23], cl
jbe 0x405fd0
and eax, 0xffff
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [0xbc3ac8]
mov edx, dword [esp + 0x28]
shr ecx, 0xa
shr edx, 0xa
mov ecx, dword [eax + ecx*4]
mov eax, dword [0xbc3ac4]
add ecx, dword [eax + edx*4]
mov edx, dword [esp + 0x1c]
mov eax, dword [0xbc3ac0]
shr edx, 0xa
mov edx, dword [eax + edx*4]
mov al, byte [ecx + edx]
mov edx, dword [0xc14240]
mov byte [esp + 0x40], al
mov ecx, dword [esp + 0x40]
and ecx, 0xff
movsx edx, byte [ecx + edx]
inc edx
cmp edx, 4
ja case.0x405e89.0
jmp dword [edx*4 + 0x406218]
test ebx, ebx
je 0x405ed3
test esi, esi
je 0x405ed3
mov edx, dword [ecx*4 + 0xc14260]
test edx, edx
je 0x405ed3
xor eax, eax
mov byte [esp + 0x23], 0x72
mov al, byte [ecx + 0xc161e0]
imul eax, edx
imul eax, ebx
mov ebx, dword [esp + 0x30]
add ebx, eax
mov dword [esp + 0x30], ebx
mov ebx, 0x80
sub ebx, edx
imul ebx, dword [esp + 0x4c]
shr ebx, 7
mov dword [esp + 0x4c], ebx
mov cl, byte [ecx + 0xc162e0]
test cl, cl
je case.0x405e89.0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x48]
movzx cx, cl
inc edx
add eax, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x48], eax
jmp case.0x405e89.0
test ebx, ebx
je 0x405f40
test esi, esi
je 0x405f40
mov edx, dword [ecx*4 + 0xc14260]
test edx, edx
je 0x405f40
xor eax, eax
mov ebx, dword [esp + 0x38]
mov al, byte [ecx + 0xc161e0]
mov byte [esp + 0x23], 0x62
imul eax, edx
imul eax, esi
add ebx, eax
mov eax, 0x80
sub eax, edx
mov dword [esp + 0x38], ebx
imul eax, esi
mov ebx, dword [esp + 0x4c]
shr eax, 7
mov esi, eax
mov cl, byte [ecx + 0xc162e0]
test cl, cl
je case.0x405e89.0
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x34]
movzx cx, cl
inc edx
add eax, ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x34], eax
jmp case.0x405e89.0
mov cl, byte [ecx + 0xc15e80]
mov al, byte [esp + 0x24]
cmp cl, al
jbe case.0x405e89.0
mov byte [esp + 0x24], cl
jmp case.0x405e89.0
movzx dx, byte [ecx + 0xc15e80]
add dword [esp + 0x44], edx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x64]
add edx, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x60]
add ecx, edx
dec eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x50], eax
jne 0x405e37
mov al, byte [esp + 0x23]
cmp al, 0x62
je 0x406101
cmp al, 0x72
je 0x4060a9
mov eax, dword [0xc15e60]
sub eax, 0
je 0x40609a
sub eax, 2
je 0x40607b
dec eax
jne 0x406172
mov eax, dword [esp + 0x44]
and eax, 0xffff
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fmul qword [esp + 0x58]
fadd qword [0x46c4f0]
call fcn.00460494
mov cx, ax
mov eax, 0x80808081
and ecx, 0xffff
shl ecx, 2
mul ecx
shr edx, 7
test dx, dx
jne 0x406036
mov eax, 1
jmp 0x406055
cmp dx, 0x3ff
jbe 0x406047
movzx ax, byte [0xc14e5f]
jmp 0x406055
and edx, 0xffff
movzx ax, byte [edx + 0xc14a60]
and eax, 0xffff
mov al, byte [eax + 0xc14140]
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x18]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x18], ecx
jmp 0x406172
mov al, byte [esp + 0x24]
test al, al
jne 0x406088
mov byte [esp + 0x24], 1
mov edx, dword [esp + 0x24]
and edx, 0xff
mov al, byte [edx + 0xc14140]
jmp 0x406060
mov eax, dword [esp + 0x14]
mov cl, byte [0xbf3f40]
jmp 0x406160
cmp word [esp + 0x74], 0
je 0x4060cd
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
and eax, 0xffff
and ecx, 0xffff
cdq
idiv ecx
mov byte [esp + 0x70], al
jmp 0x4060d2
mov byte [esp + 0x70], 0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x70]
shr eax, 0xe
and eax, 0xff
mov cl, byte [eax + 0xbf3d60]
mov eax, dword [esp + 0x14]
mov byte [eax], cl
inc eax
and edx, 0xff
mov dword [esp + 0x14], eax
mov cl, byte [edx + 0xbf3d60]
jmp 0x406167
cmp word [esp + 0x6c], 0
je 0x406125
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x6c]
and eax, 0xffff
and ecx, 0xffff
cdq
idiv ecx
mov byte [esp + 0x70], al
jmp 0x40612a
mov byte [esp + 0x70], 0
mov eax, dword [esp + 0x38]
shr eax, 0xe
and eax, 0xff
mov dl, byte [eax + 0xbf3f40]
mov eax, dword [esp + 0x14]
mov byte [eax], dl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x70]
and eax, 0xff
mov cl, byte [eax + 0xbf3f40]
jmp 0x406167
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x13]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov byte [eax], cl
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
add edi, 0x16
dec eax
mov dword [esp + 0x54], eax
jne 0x405d93
push 0
push 0xbd3d20
push 0xbe3d40
call fcn.00406230
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret