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

Disassembly:
sub esp, 0x264
push ebx
fldz
mov ebx, dword [esp + 0x26c]
fld dword [esp + 0x27c]
mov eax, dword [ebx]
fcom st(1)
push ebp
mov ebp, dword [eax + 4]
push esi
mov esi, dword [esp + 0x278]
imul ebp, esi
add ebp, 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 edx, dword [esp + 0x28c]
lea eax, [esp + 0x6c]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ecx
xor ecx, ecx
fnstsw ax
push edi
mov edi, dword [esp + 0x294]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ecx
test ah, 0x41
jnp 0x426fd8
fld dword [esp + 0x28c]
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 0x41
jnp 0x426fd8
cmp edx, 0x100
jne 0x42643d
cmp edi, ecx
jne 0x4263fe
sub esp, 0x10
fxch st(1)
fstp dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [esp + 0x294]
fstp dword [esp + 4]
fld dword [esp + 0x290]
fstp dword [esp]
push esi
push ebx
call fcn.0041e380
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
cmp edi, 0x100
jne 0x42644d
sub esp, 0x10
fxch st(1)
fstp dword [esp + 0xc]
fstp dword [esp + 8]
fld dword [esp + 0x294]
fstp dword [esp + 4]
fld dword [esp + 0x290]
fstp dword [esp]
push esi
push ebx
call fcn.00423ce0
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
cmp edx, ecx
jne 0x42644d
cmp edi, 0x100
je 0x426fd8
mov ecx, dword [ebp]
mov dword [esp + 0x4c], ecx
fild dword [esp + 0x4c]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x50], ecx
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fld st(0)
fsub st(2)
fabs
fld qword [0x4a6dc8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4264c7
fild dword [esp + 0x50]
fsub st(4)
fabs
fcompp
fnstsw ax
test ah, 5
jp 0x4264c9
fstp st(2)
push edi
fstp st(0)
push edx
fstp st(0)
fld dword [esp + 0x28c]
call fcn.00499690
fld dword [esp + 0x288]
push eax
call fcn.00499690
push esi
push ebx
mov ecx, eax
call fcn.00422000
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
fstp st(0)
fild dword [ebp + 8]
sub ecx, dword [ebp + 0xc]
mov dword [esp + 0x20], ecx
fmul st(2)
fdivrp st(1)
fsubr dword [esp + 0x280]
fstp dword [esp + 0x280]
fild dword [esp + 0x50]
fstp dword [esp + 0x34]
fld dword [esp + 0x284]
fild dword [esp + 0x20]
fmul st(3)
fdiv dword [esp + 0x34]
fsub qword [0x4a6bd0]
fsubp st(1)
fstp dword [esp + 0x284]
fld dword [esp + 0x284]
fild dword [0x52be08]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x426fd6
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 0x426fe9
fld dword [esp + 0x280]
fild dword [0x52be18]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x426fe7
faddp st(2)
fxch st(1)
fst qword [esp + 0x28]
fsubrp st(1)
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 1
je 0x426fda
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov esi, eax
mov dword [esp + 0x14], esi
fild dword [esp + 0x14]
fld dword [esp + 0x284]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x426604
fild dword [esp + 0x14]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4265ce
inc esi
mov dword [esp + 0x14], esi
fisubr dword [esp + 0x14]
sub esp, 8
fmul dword [esp + 0x3c]
fdiv dword [esp + 0x294]
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 dword [esp + 0x1c], eax
jmp 0x42660e
fstp st(0)
mov dword [esp + 0x1c], 0
mov ebx, dword [0x52be04]
cmp esi, ebx
jge 0x426678
mov edx, ebx
sub edx, esi
imul edx, dword [esp + 0x50]
mov dword [esp + 0x20], edx
sub esp, 8
fild dword [esp + 0x28]
fdiv dword [esp + 0x294]
fmul qword [0x4a6da0]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp qword [esp]
call sub.MSVCR90.dll_floor
fnstcw word [esp + 0x20]
mov esi, ebx
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x28], eax
add esp, 8
mov dword [esp + 0x14], esi
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], eax
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 + 0x34], eax
jle 0x4266aa
mov eax, ecx
mov dword [esp + 0x34], ecx
sub eax, esi
inc eax
test eax, eax
jle 0x426fdc
fld dword [esp + 0x280]
sub esp, 8
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
mov esi, eax
mov dword [esp + 0x40], esi
fild dword [esp + 0x40]
fld dword [esp + 0x280]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x426744
fild dword [esp + 0x40]
fld st(1)
fsub qword [0x4a6ba0]
fcompp
fnstsw ax
test ah, 0x41
jne 0x426705
inc esi
mov dword [esp + 0x40], esi
fisubr dword [esp + 0x40]
sub esp, 8
fmul dword [esp + 0x40]
fdiv dword [esp + 0x290]
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 + 0x280]
mov ebx, eax
mov dword [esp + 0x3c], eax
jmp 0x42674a
xor ebx, ebx
mov dword [esp + 0x3c], ebx
fild dword [0x52be3c]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4267bf
mov ecx, dword [0x52be3c]
sub ecx, esi
imul ecx, dword [esp + 0x4c]
mov dword [esp + 0x20], ecx
sub esp, 8
fild dword [esp + 0x28]
fdiv dword [esp + 0x290]
fmul qword [0x4a6da0]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp qword [esp]
call sub.MSVCR90.dll_floor
mov esi, dword [0x52be3c]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
or eax, 0xc00
mov dword [esp + 0x28], eax
add esp, 8
fldcw word [esp + 0x20]
fistp qword [esp + 0x20]
mov edx, dword [esp + 0x20]
add ebx, edx
mov dword [esp + 0x3c], ebx
fldcw word [esp + 0x18]
fld qword [esp + 0x28]
push ecx
fsub qword [0x4a6bd0]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fstp dword [esp]
call fcn.0041c740
mov ecx, dword [0x52be18]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x38], eax
jle 0x4267ef
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x4c]
shl eax, 0x10
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv dword [esp + 0x288]
call fcn.00499690
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
shl eax, 0x10
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fdiv dword [esp + 0x28c]
call fcn.00499690
mov dword [esp + 0x48], eax
test ebx, ebx
jge 0x42684f
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
lea esp, [esp]
cmp esi, ecx
jg 0x42684b
add ebx, eax
inc esi
test ebx, ebx
jl 0x426840
mov dword [esp + 0x3c], ebx
mov eax, ebx
sar eax, 0x10
test eax, eax
je 0x426866
and ebx, 0xffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x34]
test ecx, ecx
jge 0x42688b
mov eax, dword [esp + 0x14]
cmp eax, edx
jg 0x426883
add ecx, dword [esp + 0x48]
inc eax
test ecx, ecx
jl 0x426876
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov eax, ecx
sar eax, 0x10
test eax, eax
je 0x4268a2
and ecx, 0xffff
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
sub edx, dword [esp + 0x14]
sub ecx, esi
inc ecx
inc edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x28], edx
test ecx, ecx
jle 0x426fdc
test edx, edx
jle 0x426fdc
mov eax, dword [esp + 0x1c]
dec ecx
imul ecx, dword [esp + 0x44]
add ecx, ebx
sar ecx, 0x10
add ecx, dword [esp + 0x58]
add esi, esi
cmp ecx, dword [ebp]
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], eax
jl 0x4268ec
dec dword [esp + 0x44]
dec edx
imul edx, dword [esp + 0x48]
add edx, eax
sar edx, 0x10
add edx, dword [esp + 0x5c]
cmp edx, dword [ebp + 4]
jl 0x426904
dec dword [esp + 0x48]
mov ecx, dword [esp + 0x27c]
mov esi, dword [esp + 0x278]
push ecx
mov eax, esi
call fcn.00417890
add esp, 4
mov dword [esp + 0x38], eax
test eax, eax
je 0x426fdc
mov edx, dword [0x52b3b0]
mov eax, dword [0x52b3ac]
push edx
call fcn.00417890
mov ebx, dword [esi + 0x14]
add esp, 4
mov dword [esp + 0x34], eax
test ebx, ebx
jne 0x42695a
mov eax, dword [ebp + 0x30]
push eax
mov eax, esi
call fcn.004177d0
add esp, 4
mov ebx, eax
jmp 0x42695f
call fcn.00413ac0
mov eax, dword [esp + 0x290]
lea edx, [ebx + 0x5c]
cmp eax, 0x100
jne 0x426979
mov dword [esp + 0x68], edx
jmp 0x426a28
test eax, eax
jne 0x426996
mov ecx, dword [ebp + 0x14]
add ecx, ecx
push ecx
push eax
lea edx, [esp + 0x78]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
jmp 0x426a28
cmp eax, 0x80
jne 0x4269cb
mov ecx, dword [ebp + 0x14]
mov eax, 1
cmp ecx, eax
jle 0x426a28
lea ecx, [ecx]
mov si, word [edx + eax*2]
shr si, 1
mov ebx, 0x7bef
and si, bx
mov word [esp + eax*2 + 0x70], si
inc eax
cmp eax, ecx
jl 0x4269b0
jmp 0x426a28
mov ecx, 1
cmp dword [ebp + 0x14], ecx
jle 0x426a28
mov esi, eax
movzx eax, word [edx + ecx*2]
mov ebx, eax
and ebx, 0x7e0
imul ebx, esi
mov esi, eax
and esi, 0x1f
imul esi, dword [esp + 0x290]
shr ebx, 8
shr esi, 8
and ebx, 0x7e0
and esi, 0x1f
or ebx, esi
mov esi, dword [esp + 0x290]
and eax, 0xf800
imul eax, esi
shr eax, 8
and eax, 0xf800
or ebx, eax
mov word [esp + ecx*2 + 0x70], bx
inc ecx
cmp ecx, dword [ebp + 0x14]
jl 0x4269d7
test edi, edi
jne 0x426ad9
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x426fdc
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x68]
lea edx, [ecx*4]
mov dword [esp + 0x54], edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x2c]
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x4c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov ecx, dword [edx + ecx*4 - 4]
mov edx, dword [eax + 0x2c]
mov eax, dword [esp + 0x54]
mov eax, dword [edx + eax]
add ecx, dword [esp + 0x38]
add eax, dword [esp + 0x34]
add ecx, dword [esp + 0x58]
add eax, dword [esp + 0x40]
mov dl, byte [ecx]
test dl, dl
je 0x426aa1
movzx edx, dl
mov dx, word [ebx + edx*2]
mov word [eax], dx
add esi, dword [esp + 0x44]
add eax, 2
mov edx, esi
sar edx, 0x10
add ecx, edx
and esi, 0xffff
sub edi, 1
jne 0x426a91
mov eax, dword [esp + 0x48]
add dword [esp + 0x18], eax
add dword [esp + 0x54], 4
sub dword [esp + 0x28], 1
jne 0x426a53
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
mov ecx, dword [esp + 0x290]
lea eax, [ecx + edi]
cmp eax, 0x100
jg 0x426d37
cmp edi, 0x80
jne 0x426bff
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x426fdc
mov edx, dword [esp + 0x14]
lea ecx, [edx*4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x60], eax
mov edi, 1
mov edi, edi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
mov ecx, dword [ebp + 0x2c]
sar edx, 0x10
sub eax, edx
sub eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x6c]
mov esi, dword [ecx + eax*4 - 4]
mov eax, dword [edx + 0x2c]
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + eax]
add esi, dword [esp + 0x38]
add ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
add esi, dword [esp + 0x58]
add ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov dl, byte [esi]
test dl, dl
je 0x426bc0
movzx eax, dl
mov edx, dword [esp + 0x68]
movzx edx, word [edx + eax*2]
movzx eax, word [ecx]
shr eax, 1
and eax, 0x7bef
mov edi, eax
and edi, 0x7e0
mov ebx, edx
and ebx, 0x7e0
add edi, ebx
mov ebx, eax
mov ebp, edx
and ebp, 0x1f
and ebx, 0x1f
add ebx, ebp
mov ebp, dword [esp + 0x54]
and eax, 0xf800
and edx, 0xf800
or edi, ebx
add eax, edx
or edi, eax
mov eax, dword [esp + 0x14]
mov word [ecx], di
mov edi, 1
add eax, dword [esp + 0x44]
add ecx, 2
mov edx, eax
sar edx, 0x10
and eax, 0xffff
add esi, edx
sub dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jne 0x426b66
mov eax, dword [esp + 0x48]
add dword [esp + 0x18], eax
add dword [esp + 0x28], 4
sub dword [esp + 0x60], edi
jne 0x426b20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
cmp eax, 0x100
jg 0x426d37
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x426fdc
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x60], eax
mov ebx, 1
mov edi, edi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x2c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov esi, dword [edx + ecx*4 - 4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x28]
mov ecx, dword [edx + ecx]
add esi, dword [esp + 0x38]
add ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
add esi, dword [esp + 0x58]
add ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], edx
mov dl, byte [esi]
test dl, dl
je 0x426cf4
movzx eax, dl
mov edx, dword [esp + 0x68]
movzx edx, word [edx + eax*2]
movzx eax, word [ecx]
mov ebx, eax
and ebx, 0x7e0
imul ebx, edi
shr ebx, 8
and ebx, 0x7e0
mov ebp, edx
and ebp, 0x7e0
add ebx, ebp
mov ebp, eax
and ebp, 0x1f
imul ebp, edi
shr ebp, 8
mov edi, edx
and ebp, 0x1f
and edi, 0x1f
and eax, 0xf800
add ebp, edi
mov edi, dword [esp + 0x294]
imul eax, edi
shr eax, 8
and eax, 0xf800
and edx, 0xf800
or ebx, ebp
mov ebp, dword [esp + 0x54]
add eax, edx
or ebx, eax
mov eax, dword [esp + 0x14]
mov word [ecx], bx
mov ebx, 1
add eax, dword [esp + 0x44]
add ecx, 2
mov edx, eax
sar edx, 0x10
and eax, 0xffff
add esi, edx
sub dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
jne 0x426c76
mov eax, dword [esp + 0x48]
add dword [esp + 0x18], eax
add dword [esp + 0x28], 4
sub dword [esp + 0x60], ebx
jne 0x426c30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
mov eax, dword [esp + 0x28]
cmp edi, 0x80
jne 0x426e7c
test eax, eax
jle 0x426fdc
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x60], eax
mov edi, 1
jmp 0x426d70
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x2c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
mov esi, dword [edx + ecx*4 - 4]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x28]
mov edx, dword [edx + ecx]
add esi, dword [esp + 0x38]
add edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x4c]
add esi, dword [esp + 0x58]
add edx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
mov cl, byte [esi]
test cl, cl
je 0x426e39
movzx eax, cl
mov ecx, dword [esp + 0x68]
movzx edi, word [ecx + eax*2]
movzx eax, word [edx]
shr eax, 1
and eax, 0x7bef
mov ecx, eax
mov ebx, edi
and ecx, 0xf800
and ebx, 0xf800
add ecx, ebx
cmp ecx, 0xf800
jbe 0x426df4
mov ecx, 0xf800
mov ebx, eax
mov ebp, edi
and ebx, 0x7e0
and ebp, 0x7e0
add ebx, ebp
cmp ebx, 0x7e0
jbe 0x426e13
mov ebx, 0x7e0
and eax, 0x1f
and edi, 0x1f
add eax, edi
cmp eax, 0x1f
jbe 0x426e25
mov eax, 0x1f
mov ebp, dword [esp + 0x54]
or ecx, ebx
or ecx, eax
mov eax, dword [esp + 0x14]
mov word [edx], cx
mov edi, 1
add eax, dword [esp + 0x44]
add edx, 2
mov ecx, eax
sar ecx, 0x10
and eax, 0xffff
add esi, ecx
sub dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
jne 0x426db6
mov edx, dword [esp + 0x48]
add dword [esp + 0x18], edx
add dword [esp + 0x28], 4
sub dword [esp + 0x60], edi
jne 0x426d70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
test eax, eax
jle 0x426fdc
mov ecx, dword [esp + 0x14]
lea edx, [ecx*4]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], eax
mov ebx, 1
lea esp, [esp]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0x2c]
sar eax, 0x10
sub ecx, eax
sub ecx, dword [esp + 0x5c]
mov eax, dword [edx + ecx*4 - 4]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x28]
add eax, dword [esp + 0x38]
mov esi, dword [ecx + edx]
add eax, dword [esp + 0x58]
add esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x4c]
add esi, dword [esp + 0x40]
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
lea ebx, [ebx]
mov dl, byte [eax]
test dl, dl
je 0x426f8e
mov ecx, dword [esp + 0x68]
movzx eax, dl
movzx ebx, word [ecx + eax*2]
movzx ecx, word [esi]
mov eax, ecx
and eax, 0xf800
imul eax, edi
shr eax, 8
mov edx, ebx
and eax, 0xf800
and edx, 0xf800
add eax, edx
cmp eax, 0xf800
jbe 0x426f30
mov eax, 0xf800
mov edx, ecx
and edx, 0x7e0
imul edx, edi
shr edx, 8
mov ebp, ebx
and edx, 0x7e0
and ebp, 0x7e0
add edx, ebp
cmp edx, 0x7e0
jbe 0x426f5b
mov edx, 0x7e0
and ecx, 0x1f
imul ecx, edi
shr ecx, 8
and ecx, 0x1f
and ebx, 0x1f
add ecx, ebx
cmp ecx, 0x1f
jbe 0x426f76
mov ecx, 0x1f
mov ebp, dword [esp + 0x54]
or eax, edx
or eax, ecx
mov ecx, dword [esp + 0x14]
mov word [esi], ax
mov eax, dword [esp + 0x60]
mov ebx, 1
add ecx, dword [esp + 0x44]
add esi, 2
mov edx, ecx
sar edx, 0x10
add eax, edx
and ecx, 0xffff
sub dword [esp + 0x1c], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], ecx
jne 0x426ef0
mov eax, dword [esp + 0x48]
add dword [esp + 0x18], eax
add dword [esp + 0x28], 4
sub dword [esp + 0x20], ebx
jne 0x426ea0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x264
ret
fstp st(3)
pop edi
fstp st(2)
pop esi
fstp st(0)
pop ebp
fstp st(0)
pop ebx
add esp, 0x264
ret