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

Disassembly:
sub esp, 0x26c
push ebx
fldz
mov ebx, dword [esp + 0x274]
fld dword [esp + 0x284]
mov eax, dword [ebx]
fcom st(1)
push ebp
push esi
mov esi, dword [esp + 0x280]
push edi
mov edi, dword [eax + 4]
imul edi, esi
add edi, dword [eax + 0x18]
mov eax, dword [0x52b3ac]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
imul ecx, dword [0x52b3b0]
add ecx, dword [eax + 0x18]
mov ebp, dword [esp + 0x29c]
fnstsw ax
mov dword [esp + 0x6c], ecx
xor ecx, ecx
lea edx, [esp + 0x78]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x5c], edx
test ah, 0x41
jnp 0x427ccc
fld dword [esp + 0x294]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x427ccc
mov eax, dword [esp + 0x298]
cmp eax, 0x100
jne 0x42710c
cmp ebp, ecx
jne 0x4270cd
sub esp, 0x10
fxch st(1)
fstp dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [esp + 0x29c]
fstp dword [esp + 4]
fld dword [esp + 0x298]
fstp dword [esp]
push esi
push ebx
call fcn.0041e9a0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
cmp ebp, 0x100
jne 0x42711c
sub esp, 0x10
fxch st(1)
fstp dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [esp + 0x29c]
fstp dword [esp + 4]
fld dword [esp + 0x298]
fstp dword [esp]
push esi
push ebx
call fcn.00424340
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
cmp eax, ecx
jne 0x42711c
cmp ebp, 0x100
je 0x427ccc
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x50], ecx
fild dword [esp + 0x50]
mov dword [esp + 0x3c], edx
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fld st(0)
fsub st(2)
fabs
fld qword [0x4a6dc8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x42719a
fild dword [esp + 0x3c]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x42719c
fstp st(2)
push ebp
fstp st(0)
fstp st(0)
fld dword [esp + 0x290]
call fcn.00499690
fld dword [esp + 0x28c]
push eax
call fcn.00499690
push eax
mov eax, dword [esp + 0x2a4]
push esi
push ebx
call fcn.004227f0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
fstp st(0)
sub ecx, dword [edi + 8]
fld dword [esp + 0x288]
sub edx, dword [edi + 0xc]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
fmul st(3)
fdivrp st(2)
fld1
fsub st(2), st(0)
fxch st(1)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x288]
fild dword [esp + 0x3c]
fstp dword [esp + 0x1c]
fild dword [esp + 0x20]
fmul st(3)
fdiv dword [esp + 0x1c]
fsubrp st(1)
fsubr dword [esp + 0x28c]
fstp dword [esp + 0x28c]
fld dword [esp + 0x28c]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x427cca
fld st(0)
faddp st(3)
fxch st(2)
fst qword [esp + 0x60]
fld qword [0x4a6ba0]
fsub st(1), st(0)
fild dword [0x52be04]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 1
je 0x427cdd
fld dword [esp + 0x288]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x427cdb
faddp st(2)
fxch st(1)
fst qword [esp + 0x70]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x427cce
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov ebx, eax
mov dword [esp + 0x14], ebx
fild dword [esp + 0x14]
fld dword [esp + 0x28c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4272e1
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4272ad
inc ebx
mov dword [esp + 0x14], ebx
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x24]
fdiv dword [esp + 0x29c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov esi, eax
jmp 0x4272e5
fstp st(0)
xor esi, esi
cmp ebx, dword [0x52be04]
jge 0x427352
mov eax, dword [0x52be04]
sub eax, ebx
imul eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
sub esp, 8
fild dword [esp + 0x28]
fdiv dword [esp + 0x29c]
fmul qword [0x4a6da0]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp qword [esp]
call sub.MSVCR90.dll_floor
mov ebx, dword [0x52be04]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x28], eax
add esp, 8
mov dword [esp + 0x14], ebx
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov ecx, dword [esp + 0x20]
add esi, ecx
fldcw word [esp + 0x18]
fld qword [esp + 0x60]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.0041c740
mov ecx, dword [0x52be08]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x44], eax
jle 0x427384
mov eax, ecx
mov dword [esp + 0x44], ecx
sub eax, ebx
inc eax
test eax, eax
jle 0x427cd0
fld dword [esp + 0x288]
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld dword [esp + 0x288]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x427419
fild dword [esp + 0x18]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4273dc
inc dword [esp + 0x18]
fisubr dword [esp + 0x18]
sub esp, 8
fmul dword [esp + 0x50]
fdiv dword [esp + 0x298]
fmul qword [0x4a6da0]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
fld dword [esp + 0x288]
mov dword [esp + 0x34], eax
jmp 0x427421
mov dword [esp + 0x34], 0
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x427496
mov ebx, dword [0x52be3c]
mov edx, ebx
sub edx, dword [esp + 0x18]
sub esp, 8
imul edx, dword [esp + 0x58]
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fdiv dword [esp + 0x298]
fmul qword [0x4a6da0]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp qword [esp]
call sub.MSVCR90.dll_floor
fnstcw word [esp + 0x20]
add esp, 8
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov eax, dword [esp + 0x20]
add dword [esp + 0x34], eax
fldcw word [esp + 0x18]
mov dword [esp + 0x18], ebx
fld qword [esp + 0x70]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.0041c740
mov ebx, eax
mov eax, dword [0x52be18]
add esp, 4
cmp ebx, eax
jle 0x4274c1
mov ebx, eax
mov ecx, dword [esp + 0x50]
shl ecx, 0x10
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fdiv dword [esp + 0x290]
call fcn.00499690
mov edx, dword [esp + 0x3c]
shl edx, 0x10
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov dword [esp + 0x38], eax
fdiv dword [esp + 0x294]
call fcn.00499690
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x40], eax
test ecx, ecx
jge 0x427523
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x38]
nop
cmp eax, ebx
jg 0x42751b
add ecx, edx
inc eax
test ecx, ecx
jl 0x427510
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
mov eax, ecx
sar eax, 0x10
test eax, eax
je 0x42753a
and ecx, 0xffff
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
test esi, esi
jge 0x42755f
mov edx, dword [esp + 0x40]
lea ebx, [ebx]
cmp ecx, eax
jg 0x42755b
add esi, edx
inc ecx
test esi, esi
jl 0x427550
mov dword [esp + 0x14], ecx
mov edx, esi
sar edx, 0x10
test edx, edx
je 0x427572
mov dword [esp + 0x58], edx
and esi, 0xffff
sub ebx, dword [esp + 0x18]
mov edx, 1
sub eax, ecx
add ebx, edx
add eax, edx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x2c], eax
test ebx, ebx
jle 0x427cd0
test eax, eax
jle 0x427cd0
shl dword [esp + 0x18], 1
dec ebx
imul ebx, dword [esp + 0x38]
add ebx, dword [esp + 0x34]
mov dword [esp + 0x30], esi
sar ebx, 0x10
add ebx, dword [esp + 0x54]
cmp ebx, dword [edi]
jl 0x4275ba
sub dword [esp + 0x38], edx
dec eax
imul eax, dword [esp + 0x40]
add eax, esi
sar eax, 0x10
add eax, dword [esp + 0x58]
cmp eax, dword [edi + 4]
jl 0x4275d2
sub dword [esp + 0x40], edx
mov eax, dword [esp + 0x284]
mov esi, dword [esp + 0x280]
push eax
mov eax, esi
call fcn.00417890
add esp, 4
mov dword [esp + 0x70], eax
test eax, eax
je 0x427cd0
mov ecx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push ecx
call fcn.00417890
mov ebx, dword [esi + 0x14]
add esp, 4
mov dword [esp + 0x48], eax
test ebx, ebx
jne 0x427628
mov edx, dword [edi + 0x30]
push edx
mov eax, esi
call fcn.004177d0
add esp, 4
mov ebx, eax
jmp 0x42762d
call fcn.00413ac0
mov eax, dword [esp + 0x298]
lea edx, [ebx + 0x5c]
mov dword [esp + 0x20], edx
cmp eax, 0x100
jne 0x42764b
mov dword [esp + 0x5c], edx
jmp 0x4276f9
test eax, eax
jne 0x427669
mov eax, dword [edi + 0x14]
add eax, eax
push eax
lea ecx, [esp + 0x7c]
push 0
push ecx
call sub.MSVCR90.dll_memset
add esp, 0xc
jmp 0x4276f9
cmp eax, 0x80
jne 0x42769b
mov ecx, dword [edi + 0x14]
mov eax, 1
cmp ecx, eax
jle 0x4276f9
lea esp, [esp]
mov si, word [edx + eax*2]
shr si, 1
mov ebx, 0x7bef
and si, bx
mov word [esp + eax*2 + 0x78], si
inc eax
cmp eax, ecx
jl 0x427680
jmp 0x4276f9
mov ecx, 1
cmp dword [edi + 0x14], ecx
jle 0x4276f9
mov esi, eax
jmp 0x4276b4
mov edx, dword [esp + 0x20]
movzx eax, word [edx + ecx*2]
mov edx, eax
mov ebx, eax
and edx, 0x7e0
and ebx, 0x1f
imul edx, esi
and eax, 0xf800
imul ebx, esi
imul eax, esi
shr edx, 8
shr ebx, 8
and edx, 0x7e0
and ebx, 0x1f
shr eax, 8
or edx, ebx
and eax, 0xf800
or edx, eax
mov word [esp + ecx*2 + 0x78], dx
inc ecx
cmp ecx, dword [edi + 0x14]
jl 0x4276b0
test ebp, ebp
jne 0x4277c2
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x427cd0
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
jmp 0x427730
mov ecx, dword [esp + 0x3c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x58]
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ecx*4 - 4]
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
add ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x44]
lea esi, [ecx + eax - 1]
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [eax + ecx]
add eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x34]
add eax, dword [esp + 0x18]
mov bl, byte [esi]
test bl, bl
je 0x427782
movzx ebx, bl
mov bx, word [edx + ebx*2]
mov word [eax], bx
add ecx, dword [esp + 0x38]
add eax, 2
mov ebx, ecx
sar ebx, 0x10
sub esi, ebx
and ecx, 0xffff
sub ebp, 1
jne 0x427772
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x40]
add dword [esp + 0x4c], 4
sub dword [esp + 0x1c], 1
mov dword [esp + 0x30], eax
jne 0x427730
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
mov edx, dword [esp + 0x298]
lea eax, [edx + ebp]
cmp eax, 0x100
jg 0x427a2c
cmp ebp, 0x80
jne 0x4278eb
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x427cd0
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x60], eax
lea edx, [ebp - 0x7f]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x58]
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ecx*4 - 4]
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
add ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
lea ecx, [ecx + eax - 1]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + ecx]
add ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov al, byte [eax]
test al, al
je 0x4278ad
movzx edx, al
mov eax, dword [esp + 0x5c]
movzx edx, word [eax + edx*2]
movzx eax, word [ecx]
shr eax, 1
and eax, 0x7bef
mov edi, eax
mov ebx, edx
and ebx, 0x7e0
and edi, 0x7e0
add edi, ebx
mov ebx, eax
mov ebp, edx
and ebx, 0x1f
and ebp, 0x1f
and edx, 0xf800
add ebx, ebp
and eax, 0xf800
or edi, ebx
add eax, edx
or edi, eax
mov word [ecx], di
mov edi, dword [esp + 0x4c]
mov edx, 1
add esi, dword [esp + 0x38]
add ecx, 2
mov eax, esi
sar eax, 0x10
sub dword [esp + 0x14], eax
and esi, 0xffff
sub dword [esp + 0x2c], edx
jne 0x427853
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
add dword [esp + 0x1c], 4
sub dword [esp + 0x60], edx
jne 0x427805
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
cmp eax, 0x100
jg 0x427a2c
mov eax, dword [esp + 0x2c]
test eax, eax
jle 0x427cd0
mov edx, dword [esp + 0x14]
lea ecx, [edx*4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x60], eax
mov edx, 1
lea ebx, [ebx]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x58]
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ecx*4 - 4]
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
add ecx, dword [esp + 0x70]
mov esi, dword [esp + 0x34]
lea ecx, [ecx + eax - 1]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + ecx]
add ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
mov edi, edi
mov eax, dword [esp + 0x14]
mov al, byte [eax]
test al, al
je 0x4279ea
movzx edx, al
mov eax, dword [esp + 0x5c]
movzx edx, word [eax + edx*2]
movzx eax, word [ecx]
mov edi, eax
and edi, 0x7e0
imul edi, ebp
shr edi, 8
mov ebx, edx
and ebx, 0x7e0
and edi, 0x7e0
add edi, ebx
mov ebx, eax
and ebx, 0x1f
imul ebx, ebp
shr ebx, 8
mov ebp, edx
and ebp, 0x1f
and ebx, 0x1f
and eax, 0xf800
add ebx, ebp
mov ebp, dword [esp + 0x29c]
imul eax, ebp
shr eax, 8
and edx, 0xf800
and eax, 0xf800
or edi, ebx
add eax, edx
or edi, eax
mov word [ecx], di
mov edi, dword [esp + 0x4c]
mov edx, 1
add esi, dword [esp + 0x38]
add ecx, 2
mov eax, esi
sar eax, 0x10
sub dword [esp + 0x14], eax
and esi, 0xffff
sub dword [esp + 0x2c], edx
jne 0x427970
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
add dword [esp + 0x1c], 4
sub dword [esp + 0x60], edx
jne 0x427920
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
mov eax, dword [esp + 0x2c]
cmp ebp, 0x80
jne 0x427b75
test eax, eax
jle 0x427cd0
mov edx, dword [esp + 0x14]
lea ecx, [edx*4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x30]
lea ecx, [ebp - 0x7f]
mov edi, edi
mov edx, dword [esp + 0x3c]
sar eax, 0x10
sub edx, eax
sub edx, dword [esp + 0x58]
mov eax, dword [edi + 0x2c]
mov edx, dword [eax + edx*4 - 4]
sub edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
add edx, dword [esp + 0x70]
mov ebp, dword [esp + 0x34]
lea edx, [edx + eax - 1]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], edx
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + edx]
add edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add edx, dword [esp + 0x18]
mov dword [esp + 0x2c], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
mov al, byte [eax]
test al, al
je 0x427b2f
movzx ecx, al
mov eax, dword [esp + 0x5c]
movzx esi, word [eax + ecx*2]
movzx eax, word [edx]
shr eax, 1
and eax, 0x7bef
mov ecx, eax
mov edi, esi
and ecx, 0xf800
and edi, 0xf800
add ecx, edi
cmp ecx, 0xf800
jbe 0x427aee
mov ecx, 0xf800
mov ebx, eax
mov edi, esi
and ebx, 0x7e0
and edi, 0x7e0
add ebx, edi
cmp ebx, 0x7e0
jbe 0x427b0d
mov ebx, 0x7e0
and eax, 0x1f
and esi, 0x1f
add eax, esi
cmp eax, 0x1f
jbe 0x427b1f
mov eax, 0x1f
mov edi, dword [esp + 0x4c]
or ecx, ebx
or ecx, eax
mov word [edx], cx
mov ecx, 1
add ebp, dword [esp + 0x38]
add edx, 2
mov eax, ebp
sar eax, 0x10
sub dword [esp + 0x14], eax
and ebp, 0xffff
sub dword [esp + 0x2c], ecx
jne 0x427ab0
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x40]
add dword [esp + 0x1c], 4
sub dword [esp + 0x60], ecx
mov dword [esp + 0x30], eax
jne 0x427a60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
test eax, eax
jle 0x427cd0
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov edx, 1
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x58]
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax + ecx*4 - 4]
sub ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
add ecx, dword [esp + 0x70]
lea ecx, [ecx + eax - 1]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + ecx]
add esi, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x44]
add esi, dword [esp + 0x18]
mov dword [esp + 0x60], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
mov cl, byte [ecx]
test cl, cl
je 0x427c85
mov eax, dword [esp + 0x5c]
movzx edx, cl
movzx edi, word [eax + edx*2]
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xf800
imul eax, ebp
shr eax, 8
mov edx, edi
and eax, 0xf800
and edx, 0xf800
add eax, edx
cmp eax, 0xf800
jbe 0x427c2b
mov eax, 0xf800
mov edx, ecx
and edx, 0x7e0
imul edx, ebp
shr edx, 8
mov ebx, edi
and edx, 0x7e0
and ebx, 0x7e0
add edx, ebx
cmp edx, 0x7e0
jbe 0x427c56
mov edx, 0x7e0
and ecx, 0x1f
imul ecx, ebp
shr ecx, 8
and ecx, 0x1f
and edi, 0x1f
add ecx, edi
cmp ecx, 0x1f
jbe 0x427c71
mov ecx, 0x1f
mov edi, dword [esp + 0x4c]
or eax, edx
or eax, ecx
mov word [esi], ax
mov eax, dword [esp + 0x60]
mov edx, 1
add eax, dword [esp + 0x38]
add esi, 2
mov ecx, eax
sar ecx, 0x10
sub dword [esp + 0x14], ecx
and eax, 0xffff
sub dword [esp + 0x2c], edx
mov dword [esp + 0x60], eax
jne 0x427be7
mov eax, dword [esp + 0x40]
add dword [esp + 0x30], eax
add dword [esp + 0x1c], 4
sub dword [esp + 0x20], edx
jne 0x427b95
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x26c
ret
fstp st(3)
pop edi
fstp st(2)
pop esi
fstp st(0)
pop ebp
fstp st(0)
pop ebx
add esp, 0x26c
ret