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

Disassembly:
push ebx
push esi
push edi
push ebp
sub esp, 0x1e0
cmp byte [0x6f99fc], 0
mov ebx, ecx
jne 0x43955c
mov byte [0x6f99fc], 1
push 0x4b64
call fcn.00640250
mov dword [esp + 0xcc], eax
mov eax, dword [ebx + 0x537f0]
mov dword [esp + 0xe8], eax
mov ax, word [ebx + 0x537fe]
mov dword [esp + 0x78], 0
pop ecx
mov dword [0xa0d1e8], 0
mov word [esp + 0xd8], ax
jmp 0x439b1b
mov eax, dword [esp + 0x74]
mov dword [esp + 0xa0], 0
mov edi, dword [ebx + eax*4 + 0x395f8]
movsx eax, word [edi + 0x5c]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x537f0]
mov esi, dword [esp + 0x40]
mov dword [esp + 0xc0], eax
lea eax, [esi*4]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x90], eax
lea eax, [ecx + edx*2]
mov dword [esp + 0x90], eax
mov eax, esi
imul eax, esi, 0xf0
mov dword [esp + 0x40], eax
add eax, dword [esp + 0x1fc]
fstp st(0)
mov dword [esp + 0x40], eax
mov ebp, dword [esp + 0x90]
mov eax, dword [esp + 0x1fc]
lea ebp, [ebp + ebp*4]
lea ebp, [ebp*4]
mov al, byte [eax + ebp + 0xc]
cmp al, 2
jne 0x439934
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x164], 0
fld dword [eax + ebp + 8]
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x120]
fstp st(1)
fld dword [eax + ebp + 4]
mov eax, dword [esp + 0x1fc]
fstp st(2)
fld dword [eax + ebp]
fstp st(3)
mov eax, dword [esp + 0x74]
mov dword [esp + 0x160], 0
fld st(2)
fstp dword [esp + 0x168]
fld st(1)
fstp dword [esp + 0x16c]
fst dword [esp + 0x170]
mov eax, dword [ebx + eax*4 + 0x395f8]
fcompp
add eax, 4
push eax
fstp st(0)
call fcn.004df8c0
lea eax, [esp + 0x168]
lea edx, [esp + 0x120]
push eax
lea eax, [esp + 0x118]
push edx
push eax
call fcn.004dff20
fld dword [esp + 0x120]
fstp dword [0x6f9a00]
fld dword [esp + 0x124]
fstp dword [0x6f9a04]
fld dword [esp + 0x128]
lea ecx, [esp + 0x12c]
add esp, 0xc
fstp dword [0x6f9a08]
call fcn.004dfae0
mov esi, 0x6f9a00
lea edi, [esp + 0x174]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [0x687cd4]
fmul dword [esp + 0x174]
mov eax, dword [ebx + 0x537f0]
lea eax, [eax + eax*4]
lea eax, [eax*4]
add eax, ebx
fnstcw word [esp + 0xe8]
mov ecx, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
fistp dword [esp + 0x108]
mov edi, dword [esp + 0x108]
mov dword [esp + 0xe8], ecx
fldcw word [esp + 0xe8]
mov word [eax + 4], di
fld dword [0x687cd4]
fmul dword [esp + 0x178]
fnstcw word [esp + 0xe8]
mov esi, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
fistp dword [esp + 0x108]
mov edx, dword [esp + 0x108]
mov dword [esp + 0xe8], esi
fldcw word [esp + 0xe8]
mov word [eax + 6], dx
fld dword [0x687cd4]
fmul dword [esp + 0x17c]
fnstcw word [esp + 0xe8]
mov edi, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
fistp dword [esp + 0x108]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xe8], edi
fldcw word [esp + 0xe8]
mov word [eax + 8], cx
mov edx, dword [ebx + 0x537f0]
mov eax, dword [esp + 0xc8]
mov cx, word [esp + 0x74]
mov word [eax + edx*2], cx
mov esi, dword [ebx + 0x537f0]
mov eax, dword [esp + 0x1fc]
lea esi, [esi + esi*4]
mov al, byte [eax + ebp + 0x11]
mov byte [ebx + esi*4 + 0xe], al
mov edi, dword [ebx + 0x537f0]
mov eax, dword [esp + 0x1fc]
lea edi, [edi + edi*4]
mov al, byte [eax + ebp + 0x10]
mov dl, byte [ebx + edi*4 + 0x11]
and al, 3
and dl, 0xe7
shl al, 3
or dl, al
mov byte [ebx + edi*4 + 0x11], dl
mov eax, dword [esp + 0x40]
mov esi, dword [ebx + 0x537f0]
mov cl, byte [eax + 0x13]
lea esi, [esi + esi*4]
and cl, 0xf
mov al, byte [ebx + esi*4 + 0x12]
and cl, 0xf
and al, 0xf0
or al, cl
mov byte [ebx + esi*4 + 0x12], al
mov eax, dword [esp + 0x40]
mov dl, byte [eax + 0x12]
mov edi, dword [ebx + 0x537f0]
shr dl, 2
lea edi, [edi + edi*4]
and dl, 1
mov al, byte [ebx + edi*4 + 0x10]
and dl, 1
and al, 0x7f
shl dl, 7
or al, dl
mov byte [ebx + edi*4 + 0x10], al
mov eax, dword [esp + 0x40]
mov cl, byte [eax + 0x12]
mov esi, dword [ebx + 0x537f0]
shr cl, 3
lea esi, [esi + esi*4]
and cl, 1
mov al, byte [ebx + esi*4 + 0x10]
and cl, 1
and al, 0xdf
shl cl, 5
or al, cl
mov byte [ebx + esi*4 + 0x10], al
mov eax, dword [esp + 0x40]
mov edi, dword [ebx + 0x537f0]
mov dl, byte [eax + 0x12]
lea edi, [edi + edi*4]
shr dl, 4
mov al, byte [ebx + edi*4 + 0x11]
and dl, 1
and dl, 1
and al, 0xfe
or al, dl
mov byte [ebx + edi*4 + 0x11], al
mov eax, dword [esp + 0x40]
mov cl, byte [eax + 0x12]
mov edx, dword [ebx + 0x537f0]
shr cl, 1
lea edx, [edx + edx*4]
and cl, 1
mov al, byte [ebx + edx*4 + 0x11]
and cl, 1
and al, 0xfd
add cl, cl
or al, cl
mov byte [ebx + edx*4 + 0x11], al
mov eax, dword [esp + 0x40]
mov cl, byte [eax + 0x12]
mov esi, dword [ebx + 0x537f0]
shr cl, 5
lea esi, [esi + esi*4]
and cl, 1
mov al, byte [ebx + esi*4 + 0x10]
and cl, 1
and al, 0xbf
shl cl, 6
or al, cl
mov byte [ebx + esi*4 + 0x10], al
inc dword [ebx + 0x537f0]
jmp 0x439af6
cmp al, 1
jne 0x43bb30
mov eax, dword [esp + 0x1fc]
mov dword [esp + 0x1d0], 0
fld dword [eax + ebp + 8]
mov eax, dword [esp + 0x1fc]
lea ecx, [esp + 0x18c]
fstp st(1)
fld dword [eax + ebp + 4]
mov eax, dword [esp + 0x1fc]
fstp st(2)
fld dword [eax + ebp]
fstp st(3)
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1cc], 0
fld st(2)
fstp dword [esp + 0x1d4]
fld st(1)
fstp dword [esp + 0x1d8]
fst dword [esp + 0x1dc]
mov eax, dword [ebx + eax*4 + 0x395f8]
fcompp
add eax, 4
push eax
fstp st(0)
call fcn.004df8c0
lea eax, [esp + 0x1d4]
lea edi, [esp + 0x18c]
push eax
lea eax, [esp + 0x184]
push edi
push eax
call fcn.004dff20
fld dword [esp + 0x18c]
fstp dword [0x6f9a00]
fld dword [esp + 0x190]
fstp dword [0x6f9a04]
fld dword [esp + 0x194]
lea ecx, [esp + 0x198]
add esp, 0xc
fstp dword [0x6f9a08]
call fcn.004dfae0
mov eax, dword [0xa0d1e8]
lea eax, [eax + eax*4]
lea eax, [eax*4]
fld dword [0x6f9a00]
add eax, dword [0x9b6a90]
fstp dword [eax]
fld dword [0x6f9a04]
fstp dword [eax + 4]
fld dword [0x6f9a08]
fstp dword [eax + 8]
mov eax, dword [esp + 0x1fc]
mov edx, dword [0xa0d1e8]
movsx eax, byte [eax + ebp + 0xd]
mov ecx, dword [0x9b6a90]
lea edx, [edx + edx*4]
add eax, dword [esp + 0xc0]
mov word [ecx + edx*4 + 0xc], ax
mov esi, dword [0xa0d1e8]
mov eax, dword [esp + 0x1fc]
lea esi, [esi + esi*4]
mov al, byte [eax + ebp + 0xe]
mov edi, dword [0x9b6a90]
mov byte [edi + esi*4 + 0xe], al
mov edx, dword [0xa0d1e8]
mov eax, dword [esp + 0x1fc]
lea edx, [edx + edx*4]
mov al, byte [eax + ebp + 0xf]
mov ecx, dword [0x9b6a90]
mov byte [ecx + edx*4 + 0xf], al
mov esi, dword [0xa0d1e8]
mov eax, dword [esp + 0x1fc]
lea esi, [esi + esi*4]
mov al, byte [eax + ebp + 0x11]
mov edi, dword [0x9b6a90]
mov byte [edi + esi*4 + 0x10], al
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov al, byte [eax + 0x12]
and al, 1
jne 0x439acd
inc edx
test dl, dl
jne 0x439ad9
mov dword [esp + 0x10], 1
mov ecx, dword [0xa0d1e8]
mov edx, dword [0x9b6a90]
mov al, byte [esp + 0x10]
lea ecx, [ecx + ecx*4]
mov byte [edx + ecx*4 + 0x11], al
inc dword [0xa0d1e8]
inc dword [esp + 0xa0]
inc dword [esp + 0x90]
add dword [esp + 0x40], 0x14
cmp dword [esp + 0xa0], 0xc
jl 0x43bb23
inc dword [esp + 0x74]
movsx eax, word [ebx + 0x537fc]
fldz
fldz
cmp dword [esp + 0x74], eax
fldz
fldz
jl 0x4395a1
cmp dword [esp + 0x208], 0
mov dword [esp + 0xb0], 0
jle 0x439f69
mov eax, dword [esp + 0x204]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], eax
mov eax, dword [ebx + 0x537f0]
mov dword [esp + 0x98], 0
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x3c], eax
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x204]
lea ebp, [ebp + ebp*4]
lea ebp, [ebp*4]
mov al, byte [eax + ebp + 0xc]
cmp al, 2
jne 0x439e08
mov eax, dword [esp + 0x204]
mov esi, dword [ebx + 0x537f0]
fld dword [eax + ebp + 8]
mov eax, dword [esp + 0x204]
lea esi, [esi + esi*4]
fstp st(3)
fld dword [eax + ebp + 4]
mov eax, dword [esp + 0x204]
lea esi, [esi*4]
fstp st(4)
fld dword [0x687cd4]
fmul dword [eax + ebp]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
add esi, ebx
or byte [esp + 0xe9], 0xc
or ecx, 0xffffffff
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov word [esi + 4], ax
fld dword [0x687cd4]
fmul st(4)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov word [esi + 6], ax
fld dword [0x687cd4]
fmul st(3)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov word [esi + 8], ax
mov edi, dword [ebx + 0x537f0]
mov eax, dword [esp + 0xc8]
sub ecx, dword [esp + 0xb0]
mov word [eax + edi*2], cx
mov edx, dword [ebx + 0x537f0]
mov eax, dword [esp + 0x204]
lea edx, [edx + edx*4]
mov al, byte [eax + ebp + 0x11]
mov byte [ebx + edx*4 + 0xe], al
mov edi, dword [ebx + 0x537f0]
mov eax, dword [esp + 0x204]
lea edi, [edi + edi*4]
mov al, byte [eax + ebp + 0x10]
mov cl, byte [ebx + edi*4 + 0x11]
and al, 3
and cl, 0xe7
shl al, 3
or cl, al
mov byte [ebx + edi*4 + 0x11], cl
mov eax, dword [esp + 0x3c]
mov esi, dword [ebx + 0x537f0]
mov dl, byte [eax + 0x13]
lea esi, [esi + esi*4]
and dl, 0xf
mov al, byte [ebx + esi*4 + 0x12]
and dl, 0xf
and al, 0xf0
or al, dl
mov byte [ebx + esi*4 + 0x12], al
mov eax, dword [esp + 0x3c]
mov dl, byte [eax + 0x12]
mov edi, dword [ebx + 0x537f0]
shr dl, 2
lea edi, [edi + edi*4]
and dl, 1
mov al, byte [ebx + edi*4 + 0x10]
and dl, 1
and al, 0x7f
shl dl, 7
or al, dl
mov byte [ebx + edi*4 + 0x10], al
mov eax, dword [esp + 0x3c]
mov cl, byte [eax + 0x12]
mov esi, dword [ebx + 0x537f0]
shr cl, 3
lea esi, [esi + esi*4]
and cl, 1
mov al, byte [ebx + esi*4 + 0x10]
and cl, 1
and al, 0xdf
shl cl, 5
or al, cl
mov byte [ebx + esi*4 + 0x10], al
mov eax, dword [esp + 0x3c]
mov edi, dword [ebx + 0x537f0]
mov dl, byte [eax + 0x12]
lea edi, [edi + edi*4]
shr dl, 4
mov al, byte [ebx + edi*4 + 0x11]
and dl, 1
and dl, 1
and al, 0xfe
or al, dl
mov byte [ebx + edi*4 + 0x11], al
mov eax, dword [esp + 0x3c]
mov cl, byte [eax + 0x12]
mov esi, dword [ebx + 0x537f0]
shr cl, 1
lea esi, [esi + esi*4]
and cl, 1
mov al, byte [ebx + esi*4 + 0x11]
and cl, 1
and al, 0xfd
add cl, cl
or al, cl
mov byte [ebx + esi*4 + 0x11], al
mov eax, dword [esp + 0x3c]
mov dl, byte [eax + 0x12]
mov edi, dword [ebx + 0x537f0]
shr dl, 5
lea edi, [edi + edi*4]
and dl, 1
mov al, byte [ebx + edi*4 + 0x10]
and dl, 1
and al, 0xbf
shl dl, 6
or al, dl
mov byte [ebx + edi*4 + 0x10], al
inc dword [ebx + 0x537f0]
jmp 0x439f1a
cmp al, 1
jne 0x439f1a
mov eax, dword [esp + 0x204]
mov edi, dword [0xa0d1e8]
fld dword [eax + ebp + 8]
mov eax, dword [esp + 0x204]
lea edi, [edi + edi*4]
fstp st(3)
fld dword [eax + ebp + 4]
mov eax, dword [esp + 0x204]
lea edi, [edi*4]
fstp st(4)
fld dword [eax + ebp]
add edi, dword [0x9b6a90]
fstp dword [edi]
fld st(3)
fstp dword [edi + 4]
fld st(2)
fstp dword [edi + 8]
mov eax, dword [esp + 0x204]
mov ecx, dword [0xa0d1e8]
movsx eax, byte [eax + ebp + 0xd]
mov edx, dword [0x9b6a90]
lea ecx, [ecx + ecx*4]
add eax, dword [esp + 0xb8]
mov word [edx + ecx*4 + 0xc], ax
mov esi, dword [0xa0d1e8]
mov eax, dword [esp + 0x204]
lea esi, [esi + esi*4]
mov al, byte [eax + ebp + 0xe]
mov edi, dword [0x9b6a90]
mov byte [edi + esi*4 + 0xe], al
mov ecx, dword [0xa0d1e8]
mov eax, dword [esp + 0x204]
lea ecx, [ecx + ecx*4]
mov al, byte [eax + ebp + 0xf]
mov edx, dword [0x9b6a90]
mov byte [edx + ecx*4 + 0xf], al
mov esi, dword [0xa0d1e8]
mov eax, dword [esp + 0x204]
lea esi, [esi + esi*4]
mov al, byte [eax + ebp + 0x11]
mov edi, dword [0x9b6a90]
mov byte [edi + esi*4 + 0x10], al
mov eax, dword [esp + 0xc]
xor eax, dword [esp + 0xc]
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov al, byte [eax + 0x12]
and al, 1
jne 0x439ef1
inc ecx
test cl, cl
jne 0x439efd
mov dword [esp + 0xc], 1
mov edx, dword [0xa0d1e8]
mov esi, dword [0x9b6a90]
mov al, byte [esp + 0xc]
lea edx, [edx + edx*4]
mov byte [esi + edx*4 + 0x11], al
inc dword [0xa0d1e8]
inc dword [esp + 0x98]
inc dword [esp + 0x88]
add dword [esp + 0x3c], 0x14
cmp dword [esp + 0x98], 0xc
jl 0x439b97
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
add dword [esp + 0xd4], 0xf0
add dword [esp + 0xd0], 0xc
cmp eax, dword [esp + 0x208]
jl 0x439b66
cmp dword [0xa0d1e8], 0
mov dword [0x6f99f8], 0
mov dword [esp + 0xc4], 0
jle 0x43a4be
mov dword [esp + 0x54], 0
fld dword [esp + 0x200]
xor edi, edi
or esi, 0xffffffff
cmp dword [0x6f99f8], 0
fstp st(2)
jle 0x43a0e6
xor ecx, ecx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x1f8]
cmp byte [eax + ecx + 0x16], 1
jne 0x43a0d6
fld dword [eax + ecx]
mov ebp, dword [0x9b6a90]
fsub dword [ebp + edx]
fstp st(4)
fld st(3)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x439ff0
fld st(3)
fchs
jmp 0x439ff2
fld st(3)
fstp st(3)
fld st(2)
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a0d6
mov eax, dword [esp + 0x1f8]
mov ebp, dword [0x9b6a90]
fld dword [eax + ecx + 4]
fsub dword [ebp + edx + 4]
fstp st(3)
fld st(2)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a035
fld st(2)
fchs
jmp 0x43a037
fld st(2)
fstp st(1)
fcom st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a0d6
fld st(2)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a061
fld st(2)
fchs
jmp 0x43a063
fld st(2)
fstp st(2)
fld st(3)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a080
fld st(3)
fchs
jmp 0x43a082
fld st(3)
fstp st(1)
fcom st(1)
fnstsw ax
test ah, 0x45
jne 0x43a0b0
fld st(3)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a0a5
fld st(3)
fchs
jmp 0x43a0a7
fld st(3)
fstp st(4)
jmp 0x43a0cc
fld st(2)
fcomp dword [0x687c80]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a0c8
fld st(2)
fchs
jmp 0x43a0ca
fld st(2)
fstp st(4)
fld st(3)
fstp st(4)
fld st(3)
fstp st(2)
mov esi, edi
inc edi
add ecx, 0x18
cmp edi, dword [0x6f99f8]
jl 0x439fb4
test esi, esi
jl 0x43a3a5
mov eax, dword [esp + 0x54]
mov ebp, dword [0x9b6a90]
lea esi, [esi*8]
mov dx, word [ebp + eax + 0xc]
mov eax, dword [esp + 0x1f8]
lea esi, [esi + esi*2]
mov word [eax + esi + 0x10], dx
mov byte [eax + esi + 0x16], 2
movsx ecx, word [eax + esi + 0x10]
mov eax, dword [esp + 0x1f8]
mov edi, dword [0x9b6a90]
movsx ebp, word [eax + esi + 0xe]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx*4]
add ecx, ebx
lea ebp, [ebp + ebp*4]
movsx eax, word [ecx + 6]
lea ebp, [ebp*4]
add ebp, ebx
add edi, dword [esp + 0x54]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
movsx eax, word [ebp + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
movsx eax, word [ecx + 4]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
movsx eax, word [ebp + 4]
fsubrp st(1)
fstp st(3)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x1f8]
fmul dword [0x687c7c]
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fsubrp st(1)
fstp st(4)
fld dword [eax + esi + 8]
fadd dword [edi + 8]
mov eax, dword [esp + 0x1f8]
fmul dword [0x687c70]
fstp st(1)
fld dword [eax + esi + 4]
fadd dword [edi + 4]
mov eax, dword [esp + 0x1f8]
fmul dword [0x687c70]
fstp st(2)
fld dword [eax + esi]
fadd dword [edi]
fmul dword [0x687c70]
fstp dword [eax + esi]
mov eax, dword [esp + 0x1f8]
fld st(1)
fstp dword [eax + esi + 4]
mov eax, dword [esp + 0x1f8]
fld st(0)
fstp dword [eax + esi + 8]
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x108]
fld dword [esp + 0x108]
fstp st(2)
fld st(3)
fdiv st(2)
fmul dword [0x687d04]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1f8]
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
fld st(2)
fdiv st(2)
mov edx, dword [esp + 0x108]
mov byte [eax + esi + 0xc], dl
fmul dword [0x687d04]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x1f8]
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov ecx, dword [esp + 0x108]
mov byte [eax + esi + 0xd], cl
mov edi, dword [0x9b6a90]
mov eax, dword [esp + 0x54]
mov dl, byte [edi + eax + 0x10]
mov eax, dword [esp + 0x1f8]
mov cl, byte [eax + esi + 0x14]
cmp cl, dl
ja 0x43a2e6
mov cl, dl
mov eax, dword [esp + 0x1f8]
mov byte [eax + esi + 0x14], cl
mov ebp, dword [0x9b6a90]
mov eax, dword [esp + 0x54]
cmp byte [ebp + eax + 0x11], 0
je 0x43a30e
mov eax, dword [esp + 0x1f8]
mov byte [eax + esi + 0x15], 1
cmp byte [esp + 0x1f4], 0
jne 0x43a49f
mov eax, dword [esp + 0x1f8]
cmp byte [eax + esi + 0x12], 0
je 0x43a331
cmp byte [eax + esi + 0x13], 0
jne 0x43a350
mov eax, dword [esp + 0x54]
mov esi, dword [0x9b6a90]
cmp byte [esi + eax + 0xf], 0
je 0x43a49f
jmp 0x43a49f
mov eax, dword [esp + 0x54]
mov edi, dword [0x9b6a90]
cmp byte [edi + eax + 0xe], 0
je 0x43a36e
mov edx, edi
cmp byte [edx + eax + 0xf], 0
jne 0x43a49f
mov eax, dword [esp + 0x54]
mov ebp, dword [0x9b6a90]
mov cl, byte [ebp + eax + 0xf]
mov eax, dword [esp + 0x1f8]
mov byte [eax + esi + 0x12], cl
mov edi, dword [0x9b6a90]
mov eax, dword [esp + 0x54]
mov dl, byte [edi + eax + 0xe]
mov eax, dword [esp + 0x1f8]
mov byte [eax + esi + 0x13], dl
jmp 0x43a49f
mov eax, dword [0x6f99f8]
mov edi, dword [0x9b6a90]
lea eax, [eax*8]
add edi, dword [esp + 0x54]
lea eax, [eax + eax*2]
fld dword [edi]
add eax, dword [esp + 0x1f8]
fstp dword [eax]
fld dword [edi + 4]
fstp dword [eax + 4]
fld dword [edi + 8]
fstp dword [eax + 8]
mov eax, dword [esp + 0x54]
mov ebp, dword [0x9b6a90]
mov ecx, dword [0x6f99f8]
mov si, word [ebp + eax + 0xc]
mov eax, dword [esp + 0x1f8]
lea ecx, [ecx + ecx*2]
mov word [eax + ecx*8 + 0xe], si
cmp byte [esp + 0x1f4], 0
jne 0x43a447
mov eax, dword [esp + 0x54]
mov edx, dword [0x9b6a90]
mov edi, dword [0x6f99f8]
mov cl, byte [edx + eax + 0xe]
mov eax, dword [esp + 0x1f8]
lea edi, [edi + edi*2]
mov byte [eax + edi*8 + 0x12], cl
mov ebp, dword [0x9b6a90]
mov eax, dword [esp + 0x54]
mov esi, dword [0x6f99f8]
mov dl, byte [ebp + eax + 0xf]
lea esi, [esi + esi*2]
mov eax, dword [esp + 0x1f8]
mov byte [eax + esi*8 + 0x13], dl
mov eax, dword [esp + 0x54]
mov ecx, dword [0x9b6a90]
mov edi, dword [0x6f99f8]
mov dl, byte [ecx + eax + 0x10]
mov eax, dword [esp + 0x1f8]
lea edi, [edi + edi*2]
mov byte [eax + edi*8 + 0x14], dl
mov ebp, dword [0x9b6a90]
mov eax, dword [esp + 0x54]
mov esi, dword [0x6f99f8]
mov cl, byte [ebp + eax + 0x11]
lea esi, [esi + esi*2]
mov eax, dword [esp + 0x1f8]
mov byte [eax + esi*8 + 0x15], cl
mov edi, dword [0x6f99f8]
lea edi, [edi + edi*2]
mov byte [eax + edi*8 + 0x16], 1
inc dword [0x6f99f8]
inc dword [esp + 0xc4]
mov eax, dword [esp + 0xc4]
add dword [esp + 0x54], 0x14
cmp eax, dword [0xa0d1e8]
jl 0x439f93
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xdc], ebx
mov edx, eax
mov dword [esp + 0x94], eax
mov ecx, edx
mov dword [esp + 0xe0], eax
lea eax, [ecx + edx*4]
mov ecx, eax
mov dword [esp + 0xe0], eax
lea eax, [ecx*4]
mov dword [esp + 0xe0], eax
mov eax, ebx
add eax, dword [esp + 0xe0]
mov dword [esp + 0xdc], eax
jmp 0x43b5c9
mov eax, dword [esp + 0xdc]
mov dl, byte [eax + 0x10]
and dl, 0xf0
mov byte [eax + 0x10], dl
mov cx, word [ebx + 0x537fe]
mov eax, dword [esp + 0xe0]
mov word [ebx + eax + 0xc], cx
cmp dword [0x6f99f8], 0
mov dword [esp + 0xac], 0
jle 0x43abdd
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x58], eax
mov dword [esp + 0x24], 0
add dword [esp + 0x58], 0x10
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x24]
cmp byte [eax + ecx + 0x16], 2
jne 0x43abbe
mov dx, word [eax + ecx + 0xe]
movsx ebp, dx
cmp dword [esp + 0x94], ebp
je 0x43a5ab
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x24]
movsx eax, word [eax + ecx + 0x10]
cmp dword [esp + 0x94], eax
jne 0x43abbe
cmp dword [esp + 0x94], ebp
jne 0x43a5d5
movsx edx, word [ebx + 0x537fe]
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x24]
mov ax, word [eax + ecx + 0x10]
mov word [ebx + edx*2 + 0x3a980], ax
jmp 0x43a5e4
movsx eax, word [ebx + 0x537fe]
mov word [ebx + eax*2 + 0x3a980], dx
movsx edi, word [ebx + 0x537fe]
movzx eax, word [ebx + edi*2 + 0x3a980]
and eax, 0x3fff
movsx esi, ax
lea esi, [esi + esi*4]
lea esi, [esi*4]
add esi, ebx
movsx eax, word [esi + 8]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
movsx eax, word [esi + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
movsx eax, word [esi + 4]
fstp st(2)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x38]
movsx eax, word [ebx + eax + 8]
fmul dword [0x687c7c]
fstp st(3)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x38]
fmul dword [0x687c7c]
fstp st(4)
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp dword [esp + 0xfc]
movsx eax, word [ebx + eax + 6]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x38]
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp dword [esp + 0xf0]
movsx eax, word [ebx + eax + 4]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fst st(1)
fsub st(4)
fstp st(1)
fld dword [esp + 0xf0]
fsub st(3)
fstp st(4)
fld st(3)
fmul st(0)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [esp + 0xfc]
fsub st(3)
fstp st(5)
fld st(4)
fmul st(0)
faddp st(1)
fstp st(4)
fld st(3)
fsqrt
fstp dword [esp + 0x108]
fld dword [esp + 0x108]
fstp st(4)
fld dword [0x687dac]
fcomp st(4)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43a720
fld dword [0x687dac]
jmp 0x43a83a
movsx ebp, word [ebx + 0x537fe]
movzx eax, word [ebx + ebp*2 + 0x3a980]
and eax, 0x3fff
movsx edx, ax
lea edx, [edx + edx*4]
lea edx, [edx*4]
add edx, ebx
movsx eax, word [edx + 8]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
movsx eax, word [edx + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
movsx eax, word [edx + 4]
fstp st(2)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x38]
movsx eax, word [ebx + eax + 8]
fmul dword [0x687c7c]
fstp st(3)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x38]
fmul dword [0x687c7c]
fstp st(4)
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp dword [esp + 0x100]
movsx eax, word [ebx + eax + 6]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x38]
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp dword [esp + 0xf4]
movsx eax, word [ebx + eax + 4]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fst st(1)
fsub st(4)
fstp st(1)
fld dword [esp + 0xf4]
fsub st(3)
fstp st(4)
fld st(3)
fmul st(0)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [esp + 0x100]
fsub st(3)
fstp st(5)
fld st(4)
fmul st(0)
faddp st(1)
fstp st(4)
fld st(3)
fsqrt
fstp dword [esp + 0x108]
fld dword [esp + 0x108]
fstp st(4)
fld st(3)
fstp st(4)
fld st(3)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
movsx eax, word [ebx + 0x537fe]
mov ecx, dword [esp + 0x108]
mov byte [ebx + eax + 0x448e0], cl
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1f8]
cmp byte [eax + ecx + 0x15], 0
je 0x43a8a8
movsx eax, word [ebx + 0x537fe]
or word [ebx + eax*2 + 0x3a980], 0x8000
cmp byte [esp + 0x1f4], 0
jne 0x43aba0
xor edi, edi
mov ebp, dword [esp + 0x24]
jmp 0x43a9be
mov eax, edi
lea esi, [eax*4]
mov eax, dword [esp + 0x1f8]
lea esi, [esi + esi*2]
mov al, byte [eax + ebp + 0xc]
mov dl, byte [ebx + esi + 0x2f1ee]
cmp dl, al
jne 0x43a9bd
mov eax, dword [esp + 0x1f8]
mov dl, byte [ebx + esi + 0x2f1ef]
mov al, byte [eax + ebp + 0xd]
cmp dl, al
jne 0x43a9bd
mov eax, dword [esp + 0x1f8]
fld dword [0x687cd4]
fmul dword [eax + ebp]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov eax, dword [esp + 0x108]
cmp word [ebx + esi + 0x2f1e8], ax
jne 0x43a9bd
mov eax, dword [esp + 0x1f8]
fld dword [0x687cd4]
fmul dword [eax + ebp + 4]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov eax, dword [esp + 0x108]
cmp word [ebx + esi + 0x2f1ea], ax
jne 0x43a9bd
movsx ecx, word [ebx + 0x537fe]
mov word [ebx + ecx*2 + 0x49890], di
mov edi, dword [ebx + 0x53800]
inc edi
mov esi, dword [ebx + 0x53800]
cmp edi, esi
jl 0x43a8c1
cmp edi, esi
jne 0x43aba0
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x24]
mov al, byte [eax + ecx + 0xc]
lea esi, [esi + esi*2]
mov byte [ebx + esi*4 + 0x2f1ee], al
mov edx, dword [ebx + 0x53800]
mov eax, dword [esp + 0x1f8]
lea edx, [edx + edx*2]
mov al, byte [eax + ecx + 0xd]
mov byte [ebx + edx*4 + 0x2f1ef], al
mov eax, dword [esp + 0x1f8]
fld dword [0x687cd4]
fmul dword [eax + ecx]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [ebx + 0x53800]
mov edi, dword [esp + 0x108]
lea eax, [eax + eax*2]
fldcw word [esp + 0xe8]
mov word [ebx + eax*4 + 0x2f1e8], di
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x1f8]
fld dword [0x687cd4]
fmul dword [eax + ecx + 4]
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [ebx + 0x53800]
mov ebp, dword [esp + 0x108]
lea eax, [eax + eax*2]
fldcw word [esp + 0xe8]
mov word [ebx + eax*4 + 0x2f1ea], bp
mov ecx, dword [ebx + 0x53800]
mov ax, word [esp + 0x94]
lea ecx, [ecx + ecx*2]
mov word [ebx + ecx*4 + 0x2f1ec], ax
mov esi, dword [ebx + 0x53800]
mov eax, dword [esp + 0x1f8]
lea esi, [esi + esi*2]
mov ecx, dword [esp + 0x24]
mov dl, byte [ebx + esi*4 + 0x2f1f0]
mov al, byte [eax + ecx + 0x12]
and dl, 0xf8
and al, 7
or dl, al
mov byte [ebx + esi*4 + 0x2f1f0], dl
mov edi, dword [ebx + 0x53800]
mov eax, dword [esp + 0x1f8]
lea edi, [edi + edi*2]
mov al, byte [eax + ecx + 0x13]
mov dl, byte [ebx + edi*4 + 0x2f1f0]
and al, 7
and dl, 0xc7
shl al, 3
or dl, al
mov byte [ebx + edi*4 + 0x2f1f0], dl
mov ecx, dword [ebx + 0x53800]
lea ecx, [ecx + ecx*2]
mov al, byte [ebx + ecx*4 + 0x2f1f0]
and al, 0xbf
mov byte [ebx + ecx*4 + 0x2f1f0], al
mov esi, dword [ebx + 0x53800]
lea esi, [esi + esi*2]
mov al, byte [ebx + esi*4 + 0x2f1f1]
and al, 0xfc
mov byte [ebx + esi*4 + 0x2f1f1], al
mov edi, dword [ebx + 0x53800]
mov eax, dword [esp + 0x1f8]
mov ecx, dword [esp + 0x24]
mov al, byte [eax + ecx + 0x14]
lea edi, [edi + edi*2]
mov byte [ebx + edi*4 + 0x2f1f2], al
mov ax, word [ebx + 0x53800]
movsx ebp, word [ebx + 0x537fe]
mov word [ebx + ebp*2 + 0x49890], ax
inc dword [ebx + 0x53800]
mov eax, dword [esp + 0x58]
mov cl, byte [eax]
mov dl, byte [eax]
and cl, 0xf
and dl, 0xf0
inc cl
and cl, 0xf
or dl, cl
mov byte [eax], dl
inc word [ebx + 0x537fe]
inc dword [esp + 0xac]
mov eax, dword [esp + 0xac]
add dword [esp + 0x24], 0x18
cmp eax, dword [0x6f99f8]
jl 0x43a567
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x94]
movsx eax, word [ecx + edx*2]
test eax, eax
mov dword [esp + 0xb4], eax
jl 0x43ac50
cmp byte [esp + 0x1f4], 0
jne 0x43ac25
mov ecx, dword [ebx + eax*4 + 0x395f8]
movsx eax, word [ecx + 0x5c]
mov dword [esp + 0x6c], eax
imul eax, eax, 0xf0
mov dword [esp + 0x6c], eax
add eax, dword [0x9785e8]
jmp 0x43aca4
mov eax, dword [esp + 0xb4]
mov esi, dword [ebx + eax*4 + 0x395f8]
movsx eax, word [esi + 0x5c]
mov dword [esp + 0x6c], eax
imul eax, eax, 0xf0
mov dword [esp + 0x6c], eax
add eax, dword [0x978678]
jmp 0x43aca4
cmp byte [esp + 0x1f4], 0
jne 0x43ac80
or dword [esp + 0x6c], 0xffffffff
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0xb4]
mov dword [esp + 0x6c], eax
imul eax, eax, 0xf0
mov dword [esp + 0x6c], eax
add eax, dword [0x9b6a7c]
jmp 0x43aca4
or dword [esp + 0x6c], 0xffffffff
mov eax, dword [esp + 0x6c]
sub eax, dword [esp + 0xb4]
mov dword [esp + 0x6c], eax
imul eax, eax, 0xf0
mov dword [esp + 0x6c], eax
add eax, dword [0x9b6df8]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x94]
xor edi, edi
add eax, 0xfffffff4
cmp dword [esp + 0xe4], eax
jle 0x43acc6
mov eax, dword [esp + 0xe4]
jmp 0x43acd0
mov eax, dword [esp + 0x94]
add eax, 0xfffffff4
cmp eax, dword [esp + 0x94]
mov edx, eax
jge 0x43acff
mov eax, eax
lea eax, [eax]
mov eax, dword [esp + 0xc8]
movsx eax, word [eax + edx*2]
cmp dword [esp + 0xb4], eax
jne 0x43acf5
inc edi
inc edx
cmp edx, dword [esp + 0x94]
jl 0x43ace0
mov eax, dword [esp + 0x94]
add eax, 0xfffffff4
cmp dword [esp + 0xe4], eax
jle 0x43ad20
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x28], eax
jmp 0x43ad30
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
add dword [esp + 0x28], 0xfffffff4
mov eax, dword [esp + 0x28]
mov ecx, eax
mov edx, eax
mov dword [esp + 0x7c], eax
lea eax, [ecx + edx*4]
mov ecx, eax
mov dword [esp + 0x28], eax
lea eax, [ecx*4]
mov dword [esp + 0x28], eax
movsx eax, di
movsx esi, di
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x34], eax
lea esi, [esi + esi*4]
mov eax, dword [esp + 0x6c]
lea esi, [esi*4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x78], eax
add dword [esp + 0x9c], esi
add dword [esp + 0x9c], 0x12
add dword [esp + 0x78], 0x10
mov dword [esp + 0x80], esi
jmp 0x43b58a
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x7c]
movsx eax, word [eax + ecx*2]
cmp dword [esp + 0xb4], eax
jne 0x43b581
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x94]
je 0x43b581
mov ebp, eax
mov ecx, dword [esp + 0x80]
sub ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x6c]
add ebp, dword [esp + 0xa8]
movsx ecx, byte [eax + ecx + 0xd]
movsx edi, bp
cmp edi, ecx
je 0x43ae18
movsx edx, bp
mov eax, dword [esp + 0x6c]
lea edx, [edx + edx*4]
movsx eax, byte [eax + edx*4 + 0xd]
cmp dword [esp + 0xa8], eax
jne 0x43b581
movsx esi, word [ebx + 0x537fe]
mov ax, word [esp + 0x7c]
mov word [ebx + esi*2 + 0x3a980], ax
mov eax, dword [esp + 0x34]
movsx eax, word [ebx + eax + 8]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x34]
fild dword [esp + 0x108]
movsx eax, word [ebx + eax + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x34]
movsx eax, word [ebx + eax + 4]
fstp st(2)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
movsx eax, word [ebx + eax + 4]
fmul dword [0x687c7c]
fstp st(3)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
movsx eax, word [ebx + eax + 6]
fmul dword [0x687c7c]
fstp st(4)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
movsx eax, word [ebx + eax + 8]
fmul dword [0x687c7c]
fsubr st(4)
fstp st(1)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
fmul dword [0x687c7c]
fsubr st(3)
fstp st(4)
fld st(3)
fmul st(0)
fld st(1)
fmul st(0)
faddp st(1)
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fsubr st(3)
fstp st(5)
fld st(4)
fmul st(0)
faddp st(1)
fstp st(4)
fld st(3)
fsqrt
fstp dword [esp + 0x108]
fld dword [esp + 0x108]
fstp st(4)
fld dword [0x687dac]
fcomp st(4)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x43af30
fld dword [0x687dac]
jmp 0x43b018
mov eax, dword [esp + 0x34]
movsx eax, word [ebx + eax + 8]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x34]
fild dword [esp + 0x108]
movsx eax, word [ebx + eax + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x34]
movsx eax, word [ebx + eax + 4]
fstp st(2)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
movsx eax, word [ebx + eax + 4]
fmul dword [0x687c7c]
fstp st(3)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
movsx eax, word [ebx + eax + 6]
fmul dword [0x687c7c]
fstp st(4)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
movsx eax, word [ebx + eax + 8]
fmul dword [0x687c7c]
fsubr st(4)
fstp st(1)
fild dword [esp + 0x108]
mov dword [esp + 0x108], eax
fmul dword [0x687c7c]
fsubr st(3)
fstp st(4)
fld st(3)
fmul st(0)
fld st(1)
fmul st(0)
faddp st(1)
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fsubr st(3)
fstp st(5)
fld st(4)
fmul st(0)
faddp st(1)
fstp st(4)
fld st(3)
fsqrt
fstp dword [esp + 0x108]
fld dword [esp + 0x108]
fstp st(4)
fld st(3)
fstp st(4)
fld st(3)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
movsx eax, word [ebx + 0x537fe]
mov ecx, dword [esp + 0x108]
mov byte [ebx + eax + 0x448e0], cl
cmp byte [esp + 0x1f4], 0
jne 0x43b506
mov eax, dword [esp + 0x34]
movsx eax, word [ebx + eax + 6]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x34]
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp dword [esp + 0xf8]
movsx eax, word [ebx + eax + 4]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
fild dword [esp + 0x108]
movsx eax, word [ebx + eax + 6]
fmul dword [0x687c7c]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x28]
fstp st(4)
fld st(3)
fstp st(1)
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp dword [esp + 0x104]
movsx eax, word [ebx + eax + 4]
mov dword [esp + 0x108], eax
fild dword [esp + 0x108]
fmul dword [0x687c7c]
fstp st(3)
fld st(2)
fstp st(2)
fld st(1)
fadd st(1)
fmul dword [0x687c70]
fstp st(2)
fld dword [esp + 0x104]
fadd dword [esp + 0xf8]
fmul dword [0x687c70]
fstp st(1)
fld st(2)
fsub st(4)
fstp st(4)
fld dword [esp + 0x104]
fsub dword [esp + 0xf8]
fstp st(3)
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x108]
mov eax, dword [esp + 0x108]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x34]
fld dword [esp + 0xec]
fdivp st(4)
fld dword [esp + 0xec]
fdivp st(3)
mov ecx, dword [esp + 0x28]
mov dl, byte [ebx + eax + 0xe]
mov al, byte [ebx + ecx + 0xe]
mov byte [esp + 0x48], al
cmp byte [esp + 0x48], dl
ja 0x43b188
mov byte [esp + 0x48], dl
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x7c]
jge 0x43b1a1
fld st(3)
fchs
fstp st(4)
fld st(2)
fchs
fstp st(3)
xor edi, edi
jmp 0x43b2fd
fld dword [0x687d04]
fmul st(4)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
mov edx, edi
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
lea ebp, [edx*4]
mov eax, dword [esp + 0x108]
lea ebp, [ebp + ebp*2]
cmp byte [ebx + ebp + 0x2f1ee], al
jne 0x43b2fc
fld dword [0x687d04]
fmul st(3)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov eax, dword [esp + 0x108]
cmp byte [ebx + ebp + 0x2f1ef], al
jne 0x43b2fc
fld dword [0x687cd4]
fmul st(2)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov eax, dword [esp + 0x108]
cmp word [ebx + ebp + 0x2f1e8], ax
jne 0x43b2fc
fld dword [0x687cd4]
fmul st(1)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov eax, dword [esp + 0x108]
cmp word [ebx + ebp + 0x2f1ea], ax
jne 0x43b2fc
movsx eax, word [ebx + 0x537fe]
mov word [ebx + eax*2 + 0x49890], di
mov edi, dword [ebx + 0x53800]
inc edi
mov esi, dword [ebx + 0x53800]
cmp edi, esi
jl 0x43b1a8
cmp edi, esi
jne 0x43b563
fld dword [0x687d04]
fmul st(4)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
lea esi, [esi + esi*2]
mov eax, dword [esp + 0x108]
fldcw word [esp + 0xe8]
mov byte [ebx + esi*4 + 0x2f1ee], al
fld dword [0x687d04]
fmul st(3)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [ebx + 0x53800]
mov ecx, dword [esp + 0x108]
lea eax, [eax + eax*2]
fldcw word [esp + 0xe8]
mov byte [ebx + eax*4 + 0x2f1ef], cl
fld dword [0x687cd4]
fmul st(2)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [ebx + 0x53800]
mov edx, dword [esp + 0x108]
lea eax, [eax + eax*2]
fldcw word [esp + 0xe8]
mov word [ebx + eax*4 + 0x2f1e8], dx
fld dword [0x687cd4]
fmul st(1)
fnstcw word [esp + 0xe8]
mov eax, dword [esp + 0xe8]
or byte [esp + 0xe9], 0xc
fldcw word [esp + 0xe8]
mov dword [esp + 0xe8], eax
fistp dword [esp + 0x108]
mov eax, dword [ebx + 0x53800]
mov ebp, dword [esp + 0x108]
lea eax, [eax + eax*2]
fldcw word [esp + 0xe8]
mov word [ebx + eax*4 + 0x2f1ea], bp
mov ecx, dword [ebx + 0x53800]
mov ax, word [esp + 0x94]
lea ecx, [ecx + ecx*2]
mov word [ebx + ecx*4 + 0x2f1ec], ax
mov edi, dword [ebx + 0x53800]
lea edi, [edi + edi*2]
mov al, byte [ebx + edi*4 + 0x2f1f0]
and al, 0xf8
or al, 7
mov byte [ebx + edi*4 + 0x2f1f0], al
mov esi, dword [ebx + 0x53800]
lea esi, [esi + esi*2]
mov al, byte [ebx + esi*4 + 0x2f1f0]
and al, 0xc7
or al, 0x38
mov byte [ebx + esi*4 + 0x2f1f0], al
mov edx, dword [ebx + 0x53800]
lea edx, [edx + edx*2]
mov al, byte [ebx + edx*4 + 0x2f1f0]
and al, 0xbf
mov byte [ebx + edx*4 + 0x2f1f0], al
mov ecx, dword [ebx + 0x53800]
lea ecx, [ecx + ecx*2]
mov al, byte [ebx + ecx*4 + 0x2f1f1]
and al, 0xfc
mov byte [ebx + ecx*4 + 0x2f1f1], al
mov edi, dword [ebx + 0x53800]
mov al, byte [esp + 0x48]
lea edi, [edi + edi*2]
mov byte [ebx + edi*4 + 0x2f1f2], al
mov ax, word [ebx + 0x53800]
movsx esi, word [ebx + 0x537fe]
mov word [ebx + esi*2 + 0x49890], ax
inc dword [ebx + 0x53800]
jmp 0x43b563
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x80]
movsx eax, byte [eax + ecx + 0xd]
cmp edi, eax
jne 0x43b527
mov eax, dword [esp + 0x9c]
mov al, byte [eax]
and al, 1
jne 0x43b552
movsx edi, bp
mov eax, dword [esp + 0x6c]
lea edi, [edi + edi*4]
lea edi, [edi*4]
movsx eax, byte [eax + edi + 0xd]
cmp dword [esp + 0xa8], eax
jne 0x43b563
mov eax, dword [esp + 0x6c]
mov al, byte [eax + edi + 0x12]
and al, 1
je 0x43b563
movsx eax, word [ebx + 0x537fe]
or word [ebx + eax*2 + 0x3a980], 0x8000
mov eax, dword [esp + 0x78]
mov dl, byte [eax]
mov cl, byte [eax]
and dl, 0xf
and cl, 0xf0
inc dl
and dl, 0xf
or cl, dl
mov byte [eax], cl
inc word [ebx + 0x537fe]
add dword [esp + 0x28], 0x14
inc dword [esp + 0x7c]
mov eax, dword [esp + 0x94]
mov edi, dword [ebx + 0x537f0]
add eax, 0xc
cmp edi, eax
jl 0x43b5a8
mov edi, dword [esp + 0x94]
add edi, 0xc
cmp dword [esp + 0x7c], edi
jl 0x43ada8
add dword [esp + 0xe0], 0x14
add dword [esp + 0xdc], 0x14
inc dword [esp + 0x94]
mov eax, dword [esp + 0x94]
cmp eax, dword [ebx + 0x537f0]
jl 0x43a510
cmp byte [esp + 0x1f4], 0
jne 0x43b900
mov byte [esp + 0xcc], 0
mov al, byte [esp + 0xcc]
mov byte [esp + 0x50], al
jmp 0x43b803
inc byte [esp + 0xcc]
mov byte [esp + 0x50], 1
mov dword [esp + 0x68], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x64], ebx
jmp 0x43b7f3
mov eax, dword [esp + 0x64]
mov al, byte [eax + 0x10]
and al, 0xf
cmp al, 2
jne 0x43b7e5
mov eax, dword [esp + 0x68]
mov si, word [ebx + eax + 0xc]
movsx eax, si
movsx ebp, si
movsx eax, word [ebx + eax*2 + 0x49890]
movsx edi, word [ebx + ebp*2 + 0x49892]
lea edx, [eax*4]
lea edx, [edx + edx*2]
lea ecx, [edx + ebx + 0x2f1f0]
mov al, byte [ecx]
and al, 7
mov byte [esp + 0x110], al
mov al, byte [ecx]
shr al, 3
and al, 7
mov byte [esp + 0x111], al
lea esi, [edi*4]
lea esi, [esi + esi*2]
lea ebp, [esi + ebx + 0x2f1f0]
mov al, byte [ebp]
and al, 7
mov byte [esp + 0x112], al
mov al, byte [ebp]
shr al, 3
and al, 7
mov byte [esp + 0x113], al
movsx eax, word [ebx + edx + 0x2f1ec]
cmp eax, dword [esp + 0x70]
jne 0x43b6d0
lea eax, [esp + 0x110]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x111]
jmp 0x43b6e2
lea eax, [esp + 0x111]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x1c], eax
movsx eax, word [ebx + esi + 0x2f1ec]
cmp eax, dword [esp + 0x70]
jne 0x43b704
lea edi, [esp + 0x113]
lea esi, [esp + 0x112]
jmp 0x43b712
lea edi, [esp + 0x112]
lea esi, [esp + 0x113]
mov eax, dword [esp + 0x18]
cmp byte [eax], 7
jne 0x43b729
mov dl, byte [edi]
cmp dl, 7
je 0x43b729
mov byte [eax], dl
mov byte [esp + 0x50], 0
mov eax, dword [esp + 0x1c]
cmp byte [eax], 7
jne 0x43b740
mov dl, byte [esi]
cmp dl, 7
je 0x43b740
mov byte [eax], dl
mov byte [esp + 0x50], 0
cmp byte [esi], 7
jne 0x43b757
mov eax, dword [esp + 0x1c]
mov dl, byte [eax]
cmp dl, 7
je 0x43b757
mov byte [esi], dl
mov byte [esp + 0x50], 0
cmp byte [edi], 7
jne 0x43b76d
mov eax, dword [esp + 0x18]
mov al, byte [eax]
cmp al, 7
je 0x43b76d
mov byte [edi], al
mov byte [esp + 0x50], 0
mov eax, dword [esp + 0x18]
cmp byte [eax], 7
jne 0x43b780
cmp byte [edi], 7
jne 0x43b780
mov byte [esp + 0x50], 0
cmp byte [esi], 7
jne 0x43b793
mov eax, dword [esp + 0x1c]
cmp byte [eax], 7
jne 0x43b793
mov byte [esp + 0x50], 0
mov al, byte [esp + 0x110]
mov dl, byte [ecx]
and al, 7
and dl, 0xf8
or dl, al
mov byte [ecx], dl
mov al, byte [esp + 0x111]
and al, 7
mov dl, byte [ecx]
shl al, 3
and dl, 0xc7
or dl, al
mov byte [ecx], dl
mov dl, byte [ebp]
mov al, byte [esp + 0x112]
and dl, 0xf8
and al, 7
or dl, al
mov byte [ebp], dl
mov al, byte [esp + 0x113]
and al, 7
mov dl, byte [ebp]
shl al, 3
and dl, 0xc7
or dl, al
mov byte [ebp], dl
add dword [esp + 0x68], 0x14
add dword [esp + 0x64], 0x14
inc dword [esp + 0x70]
mov eax, dword [esp + 0x70]
cmp eax, dword [ebx + 0x537f0]
jl 0x43b627
cmp byte [esp + 0x50], 0
jne 0x43b818
cmp byte [esp + 0xcc], 0xc
jb 0x43b602
mov dword [esp + 0xa4], ebx
mov dword [esp + 0xbc], 0
mov dword [esp + 0x8c], 0
jmp 0x43b8ed
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x44], 0
add edx, 0x10
mov edi, dword [esp + 0x8c]
jmp 0x43b8c5
movsx esi, word [ebx + edi + 0xc]
add esi, ecx
movsx eax, word [ebx + esi*2 + 0x49890]
lea esi, [eax*4]
lea esi, [esi + esi*2]
add esi, ebx
add esi, 0x2f1f0
mov al, byte [esi]
and al, 7
cmp al, 7
jne 0x43b88f
mov al, byte [esi]
and al, 0xf8
mov byte [esi], al
movsx ebp, word [ebx + edi + 0xc]
add ebp, ecx
movsx eax, word [ebx + ebp*2 + 0x49890]
lea esi, [eax*4]
lea esi, [esi + esi*2]
add esi, ebx
add esi, 0x2f1f0
mov al, byte [esi]
shr al, 3
and al, 7
cmp al, 7
jne 0x43b8c1
mov al, byte [esi]
and al, 0xc7
mov byte [esi], al
inc dword [esp + 0x44]
mov cl, byte [edx]
and cl, 0xf
movzx eax, cl
movsx ecx, word [esp + 0x44]
cmp ecx, eax
jl 0x43b860
add dword [esp + 0xa4], 0x14
add dword [esp + 0x8c], 0x14
inc dword [esp + 0xbc]
mov eax, dword [esp + 0xbc]
cmp eax, dword [ebx + 0x537f0]
jl 0x43b840
cmp byte [esp + 0x1f4], 0
jne 0x43b9d9
mov dword [esp + 0x4c], 0
mov byte [esp + 0x60], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x5c], 0
jmp 0x43b9be
mov eax, dword [esp + 0x20]
mov al, byte [eax + 0x10]
shr al, 4
and al, 1
jne 0x43b9b0
mov eax, dword [esp + 0x20]
mov dword [esp + 8], 0
mov cl, byte [eax + 0x10]
xor esi, esi
and cl, 0xf
mov ebp, dword [esp + 0x4c]
movzx eax, cl
jmp 0x43b98c
movsx edx, word [ebx + ebp + 0xc]
add edx, edi
movzx ecx, word [ebx + edx*2 + 0x3a980]
and ecx, 0x3fff
movsx edi, cx
lea edi, [edi + edi*4]
mov dl, byte [ebx + edi*4 + 0x10]
shr dl, 4
and dl, 1
jne 0x43b98b
inc dword [esp + 8]
inc esi
movsx edi, si
cmp edi, eax
jl 0x43b960
cmp word [esp + 8], 2
jge 0x43b9b0
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x10]
and cl, 0xef
or cl, 0x10
mov byte [eax + 0x10], cl
mov byte [esp + 0x60], 1
add dword [esp + 0x4c], 0x14
add dword [esp + 0x20], 0x14
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
cmp eax, dword [ebx + 0x537f0]
jl 0x43b930
cmp byte [esp + 0x60], 0
jne 0x43b90e
cmp byte [esp + 0x1f4], 1
jne 0x43bb05
movsx eax, word [esp + 0xd8]
mov dword [esp + 0x84], eax
jmp 0x43baf2
mov ecx, dword [esp + 0xe4]
lea ecx, [ecx + ecx*4]
lea ecx, [ecx*4]
mov al, byte [ebx + ecx + 0x10]
and al, 0xf
jne 0x43baeb
mov eax, dword [esp + 0xe4]
jmp 0x43ba97
mov di, word [ebx + ecx + 0x14]
mov word [ebx + ecx], di
mov si, word [ebx + ecx + 0x16]
mov word [ebx + ecx + 2], si
mov bp, word [ebx + ecx + 0x18]
mov word [ebx + ecx + 4], bp
mov dx, word [ebx + ecx + 0x1a]
mov word [ebx + ecx + 6], dx
mov di, word [ebx + ecx + 0x1c]
mov word [ebx + ecx + 8], di
mov si, word [ebx + ecx + 0x1e]
mov word [ebx + ecx + 0xa], si
mov bp, word [ebx + ecx + 0x20]
mov word [ebx + ecx + 0xc], bp
mov dl, byte [ebx + ecx + 0x22]
mov byte [ebx + ecx + 0xe], dl
mov dl, byte [ebx + ecx + 0x23]
mov byte [ebx + ecx + 0xf], dl
mov dl, byte [ebx + ecx + 0x24]
mov byte [ebx + ecx + 0x10], dl
mov dl, byte [ebx + ecx + 0x25]
mov byte [ebx + ecx + 0x11], dl
mov dl, byte [ebx + ecx + 0x26]
mov byte [ebx + ecx + 0x12], dl
add ecx, 0x14
inc eax
mov edi, dword [ebx + 0x537f0]
dec edi
cmp eax, edi
jl 0x43ba26
mov esi, dword [esp + 0x84]
jmp 0x43bad3
movzx eax, word [ebx + esi*2 + 0x3a980]
and eax, 0x3fff
movsx eax, ax
cmp eax, dword [esp + 0xe4]
jl 0x43bad2
dec eax
mov word [ebx + esi*2 + 0x3a980], ax
inc esi
movsx eax, word [ebx + 0x537fe]
cmp esi, eax
jl 0x43bab0
dec dword [esp + 0xe4]
dec dword [ebx + 0x537f0]
inc dword [esp + 0xe4]
mov eax, dword [esp + 0xe4]
cmp eax, dword [ebx + 0x537f0]
jl 0x43ba00
fcompp
fcompp
push dword [esp + 0xc8]
call fcn.00645bb0
pop ecx
add esp, 0x1e0
pop ebp
pop edi
pop esi
pop ebx
ret 0x18
fldz
fldz
fldz
jmp 0x439605
fcompp
fstp st(0)
jmp 0x439af6