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

Disassembly:
sub esp, 0x280
push ebx
fld dword [esp + 0x290]
mov ebx, dword [esp + 0x288]
fadd qword [0x4a6ba0]
mov eax, dword [ebx]
push ebp
mov ebp, dword [eax + 4]
push esi
push edi
mov edi, dword [esp + 0x298]
mov esi, dword [esp + 0x2b8]
imul ebp, edi
add ebp, dword [eax + 0x18]
mov eax, dword [0x52b3ac]
mov ecx, dword [eax]
mov eax, dword [ecx + 4]
imul eax, dword [0x52b3b0]
add eax, dword [ecx + 0x18]
mov ecx, dword [ebp + 0x2c]
sub esp, 8
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x2a8]
mov dword [esp + 0x6c], eax
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
lea edx, [esp + 0x90]
mov dword [esp + 0x34], eax
mov dword [esp + 0x80], edx
cmp esi, 0x100
jne 0x429575
mov eax, dword [esp + 0x2bc]
test eax, eax
jne 0x42950a
fld dword [esp + 0x2b4]
sub esp, 0x1c
fstp dword [esp + 0x18]
fld dword [esp + 0x2cc]
fstp dword [esp + 0x14]
fld dword [esp + 0x2c8]
fstp dword [esp + 0x10]
fld dword [esp + 0x2c4]
fstp dword [esp + 0xc]
fld dword [esp + 0x2c0]
fstp dword [esp + 8]
fld dword [esp + 0x2bc]
fstp dword [esp + 4]
fld dword [esp + 0x2b8]
fstp dword [esp]
push edi
push ebx
call fcn.0041efc0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
cmp eax, 0x100
jne 0x42958a
fld dword [esp + 0x2b4]
sub esp, 0x1c
fstp dword [esp + 0x18]
fld dword [esp + 0x2cc]
fstp dword [esp + 0x14]
fld dword [esp + 0x2c8]
fstp dword [esp + 0x10]
fld dword [esp + 0x2c4]
fstp dword [esp + 0xc]
fld dword [esp + 0x2c0]
fstp dword [esp + 8]
fld dword [esp + 0x2bc]
fstp dword [esp + 4]
fld dword [esp + 0x2b8]
fstp dword [esp]
push edi
push ebx
call fcn.00427cf0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
test esi, esi
jne 0x42958a
cmp dword [esp + 0x2bc], 0x100
je 0x42a014
fld dword [esp + 0x2a8]
fld st(0)
fld qword [0x4a6c18]
fmul st(1), st(0)
fxch st(1)
call fcn.00499690
fld qword [0x4a6e10]
mov esi, eax
mov dword [esp + 0x78], eax
test esi, esi
jge 0x4295c8
fld dword [esp + 0x2a4]
neg esi
fadd st(1)
mov dword [esp + 0x78], esi
fstp dword [esp + 0x2a4]
fld dword [esp + 0x2ac]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
mov dword [esp + 0x74], eax
test eax, eax
jge 0x4295f8
fadd dword [esp + 0x2a4]
neg eax
mov dword [esp + 0x74], eax
fstp dword [esp + 0x2a4]
jmp 0x4295fa
fstp st(0)
test esi, esi
je 0x42ab67
test eax, eax
je 0x42ab67
fldz
fld dword [esp + 0x2a4]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x42964e
fld qword [0x4a6e08]
fdivr st(1)
call fcn.00499690
imul eax, eax, 0xfffffe98
mov ecx, 0x168
sub ecx, eax
mov dword [esp + 0x14], ecx
fiadd dword [esp + 0x14]
fstp dword [esp + 0x2a4]
fld dword [esp + 0x2a4]
fmul qword [0x4a6e00]
call fcn.00499690
cdq
mov ecx, 0xb40
idiv ecx
mov esi, edx
test esi, esi
jne 0x4296d0
fmul dword [esp + 0x2b4]
mov edx, dword [esp + 0x2b8]
mov ebx, dword [esp + 0x2bc]
push edx
fstp dword [esp + 0x18]
sub esp, 0x10
fld dword [esp + 0x28]
mov eax, edi
mov edi, dword [esp + 0x2a8]
fstp dword [esp + 0xc]
fmul dword [esp + 0x2c4]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 8]
fld dword [esp + 0x2b4]
fstp dword [esp + 4]
fld dword [esp + 0x2b0]
fstp dword [esp]
call fcn.004185a0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
cmp esi, 0x5a0
jne 0x429745
mov eax, dword [esp + 0x2b8]
fchs
fmul dword [esp + 0x2b4]
mov ebx, dword [esp + 0x2bc]
push eax
sub esp, 0x10
fstp dword [esp + 0x28]
mov eax, edi
fld dword [esp + 0x28]
mov edi, dword [esp + 0x2a8]
fstp dword [esp + 0xc]
fchs
fmul dword [esp + 0x2c4]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 8]
fld dword [esp + 0x2b4]
fstp dword [esp + 4]
fld dword [esp + 0x2b0]
fstp dword [esp]
call fcn.004185a0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ecx
lea eax, [esi + 0x2d0]
cdq
mov ecx, 0xb40
idiv ecx
mov ecx, dword [0x52b310]
mov eax, 0xb60b60b7
mov ebx, dword [ebp]
mov edi, dword [ebp + 4]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], edi
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x14], edx
imul esi
fild dword [esp + 0x14]
fstp dword [esp + 0x84]
fld dword [esp + 0x84]
fld qword [0x4a6df8]
fmul st(1), st(0)
fxch st(1)
add edx, esi
sar edx, 0xb
fstp dword [esp + 0x24]
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0xb40
mov edx, esi
sub edx, eax
mov eax, dword [ecx + edx*4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
shl eax, 0x10
cdq
fild dword [esp + 0x50]
idiv dword [esp + 0x78]
fstp dword [esp + 0x60]
fmul dword [esp + 0x60]
fstp dword [esp + 0x30]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld dword [esp + 0x2b0]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.00499690
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
shl eax, 0x10
cdq
idiv dword [esp + 0x74]
mov dword [esp + 0x14], eax
fidivr dword [esp + 0x14]
call fcn.00499690
cmp esi, 0x2d0
mov dword [esp + 0x38], eax
jge 0x42989a
mov eax, dword [esp + 0x20]
mov ecx, eax
neg ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, ecx
neg edx
fstp dword [esp + 0x1c]
mov dword [esp + 0x14], edx
fld dword [esp + 0x1c]
sub ebx, eax
fst dword [esp + 0x44]
dec ebx
fild dword [esp + 0x14]
mov dword [esp + 0x14], ebx
sub edi, ecx
dec edi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x48]
fild dword [esp + 0x14]
mov dword [esp + 0x14], edi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x28]
fstp dword [esp + 0x40]
fstp dword [esp + 0x4c]
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x1c]
fstp dword [esp + 0x14]
fstp dword [esp + 0x50]
jmp 0x429a0e
cmp esi, 0x5a0
jge 0x42990d
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub ebx, eax
dec ebx
mov dword [esp + 0x14], ebx
fild dword [esp + 0x14]
mov edx, ecx
neg edx
mov dword [esp + 0x14], edx
fstp dword [esp + 0x1c]
sub edi, ecx
fld dword [esp + 0x1c]
dec edi
fst dword [esp + 0x44]
neg eax
fild dword [esp + 0x14]
mov dword [esp + 0x14], edi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x48]
fxch st(1)
fstp dword [esp + 0x28]
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x4c]
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
jmp 0x4299fe
cmp esi, 0x870
jge 0x42998c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub ebx, eax
dec ebx
mov dword [esp + 0x14], ebx
fild dword [esp + 0x14]
sub edi, ecx
dec edi
mov dword [esp + 0x14], edi
fstp dword [esp + 0x1c]
neg eax
fld dword [esp + 0x1c]
neg ecx
fst dword [esp + 0x44]
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x48]
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x28]
fstp dword [esp + 0x40]
fstp dword [esp + 0x4c]
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x1c]
fstp dword [esp + 0x14]
fstp dword [esp + 0x50]
jmp 0x429a0e
cmp esi, 0xb40
jge 0x42ab67
mov eax, dword [esp + 0x20]
mov ecx, eax
neg ecx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub edi, ecx
dec edi
fstp dword [esp + 0x1c]
mov dword [esp + 0x14], edi
fld dword [esp + 0x1c]
neg ecx
fst dword [esp + 0x44]
sub ebx, eax
fild dword [esp + 0x14]
mov dword [esp + 0x14], ecx
dec ebx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x48]
fxch st(1)
fstp dword [esp + 0x28]
fild dword [esp + 0x14]
mov dword [esp + 0x14], ebx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x4c]
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x40]
fstp dword [esp + 0x50]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x44]
push ecx
fmul st(2)
fstp dword [esp + 0x48]
fld dword [esp + 0x4c]
fmul st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x2c]
fmul st(2)
fstp dword [esp + 0x2c]
fld dword [esp + 0x50]
fmul st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x44]
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x44]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x4c]
fmul dword [esp + 0x28]
fld dword [esp + 0x48]
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0x2b8]
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040f160
fld dword [esp + 0x20]
mov edi, eax
fmul dword [esp + 0x28]
mov dword [esp + 0x80], edi
fld dword [esp + 0x44]
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0x2b8]
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040f160
fld dword [esp + 0x50]
mov ebx, eax
fmul dword [esp + 0x28]
mov dword [esp + 0x6c], ebx
fld dword [esp + 0x2c]
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0x2b8]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp dword [esp]
call fcn.0040f160
fld dword [esp + 0x18]
mov esi, eax
fmul dword [esp + 0x2b0]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esp + 0x28]
fld dword [esp + 0x54]
fmul dword [esp + 0x2ac]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esp + 0x34]
fsubp st(1)
fmul dword [esp + 0x2b8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
call fcn.0040f160
mov dword [esp + 0x58], eax
mov eax, esi
add esp, 4
sub eax, edi
mov dword [esp + 0x14], eax
je 0x429bdd
mov eax, esi
sub eax, ebx
mov dword [esp + 0x50], eax
je 0x429bdd
fld dword [esp + 0x4c]
fld dword [esp + 0x30]
fld st(0)
fmulp st(2)
fld dword [esp + 0x28]
fld dword [esp + 0x24]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [esp + 0x48]
fmul st(2)
fld dword [esp + 0x44]
fmul st(4)
faddp st(1)
fsubr st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0x2b0]
fld st(0)
fmulp st(3)
fild dword [esp + 0x14]
fdivp st(3)
fxch st(2)
call fcn.00499690
mov dword [esp + 0x58], eax
test eax, eax
jge 0x429b9b
neg eax
mov dword [esp + 0x58], eax
fld dword [esp + 0x1c]
fmulp st(4)
fld dword [esp + 0x40]
fmulp st(5)
fxch st(3)
faddp st(4)
fxch st(3)
fsub st(1)
fmul st(2)
fmul st(3)
fidiv dword [esp + 0x50]
call fcn.00499690
mov edi, eax
mov dword [esp + 0x5c], eax
test edi, edi
jge 0x429bcc
neg edi
mov dword [esp + 0x5c], edi
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov ebx, eax
mov dword [esp + 0x2c], ebx
jmp 0x429c3e
fld dword [esp + 0x48]
xor edi, edi
fld dword [esp + 0x30]
mov dword [esp + 0x5c], edi
fld st(0)
mov dword [esp + 0x58], edi
fmulp st(2)
fld dword [esp + 0x44]
fld dword [esp + 0x24]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0x2b0]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
fld dword [esp + 0x1c]
fmulp st(3)
mov ebx, eax
fld dword [esp + 0x40]
mov dword [esp + 0x2c], ebx
fmulp st(4)
fxch st(2)
faddp st(3)
fxch st(2)
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov ecx, dword [0x52be04]
sub ecx, dword [esp + 0x34]
mov dword [esp + 0x24], eax
cmp esi, ecx
jge 0x429c79
cmp esi, dword [esp + 0x7c]
jge 0x429c5c
sub ebx, dword [esp + 0x58]
jmp 0x429c5e
add ebx, edi
cmp esi, dword [esp + 0x68]
jge 0x429c68
add eax, edi
jmp 0x429c6c
sub eax, dword [esp + 0x58]
inc esi
cmp esi, ecx
jl 0x429c50
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ebx
mov eax, dword [0x52be08]
sub eax, dword [esp + 0x34]
cmp dword [esp + 0x54], eax
jle 0x429c8c
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x298]
mov edi, dword [esp + 0x294]
push edx
mov eax, edi
call fcn.00417890
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x42a014
mov eax, dword [0x52b3b0]
push eax
mov eax, dword [0x52b3ac]
call fcn.00417890
mov ebx, dword [edi + 0x14]
add esp, 4
mov dword [esp + 0x50], eax
test ebx, ebx
jne 0x429ce1
mov ecx, dword [ebp + 0x30]
push ecx
mov eax, edi
call fcn.004177d0
add esp, 4
mov ebx, eax
jmp 0x429ce6
call fcn.00413ac0
mov eax, dword [esp + 0x2b8]
lea edx, [ebx + 0x5c]
cmp eax, 0x100
jne 0x429d03
mov dword [esp + 0x80], edx
jmp 0x429dbc
test eax, eax
jne 0x429d23
mov edx, dword [ebp + 0x14]
add edx, edx
push edx
push eax
lea eax, [esp + 0x98]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
jmp 0x429dbc
mov ebp, dword [ebp + 0x14]
cmp eax, 0x80
jne 0x429d5e
mov eax, 1
cmp ebp, eax
jle 0x429dbc
lea ebx, [ebx]
mov cx, word [edx + eax*2]
shr cx, 1
mov edi, 0x7bef
and cx, di
mov word [esp + eax*2 + 0x90], cx
inc eax
cmp eax, ebp
jl 0x429d40
jmp 0x429dbc
mov ecx, 1
cmp ebp, ecx
jle 0x429dbc
mov ebx, eax
movzx eax, word [edx + ecx*2]
mov edi, eax
and edi, 0x7e0
imul edi, ebx
mov ebx, eax
and ebx, 0x1f
imul ebx, dword [esp + 0x2b8]
shr edi, 8
shr ebx, 8
and edi, 0x7e0
and ebx, 0x1f
or edi, ebx
mov ebx, dword [esp + 0x2b8]
and eax, 0xf800
imul eax, ebx
shr eax, 8
and eax, 0xf800
or edi, eax
mov word [esp + ecx*2 + 0x90], di
inc ecx
cmp ecx, ebp
jl 0x429d69
mov ecx, dword [esp + 0x2bc]
test ecx, ecx
jne 0x42a01f
cmp esi, dword [esp + 0x54]
mov dword [esp + 0x30], esi
jg 0x42a014
mov edx, dword [esp + 0x64]
fild dword [esp + 0x78]
mov eax, dword [0x52be3c]
mov ecx, dword [0x52be18]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
fild dword [esp + 0x74]
sub eax, edx
sub ecx, edx
mov edx, dword [esp + 0x18]
shl edx, 0x10
fstp dword [esp + 0x44]
fld qword [0x4a6df0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
fld dword [esp + 0x28]
fld dword [esp + 0x84]
lea ebp, [esi + edx]
fld dword [esp + 0x60]
shl ebx, 0x10
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ebp
jmp 0x429e4c
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
sar esi, 0x10
sar edi, 0x10
cmp esi, eax
mov dword [esp + 0x18], esi
jge 0x429e68
mov esi, eax
mov dword [esp + 0x18], eax
cmp edi, ecx
jle 0x429e6e
mov edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2b0]
fild dword [esp + 0x30]
fdiv dword [esp + 0x2b4]
fld st(3)
fmul st(2)
fld st(3)
fmul st(2)
fsubp st(1)
fmul st(6)
fdiv st(5)
call fcn.00499690
fmul st(3)
fld st(2)
sub ebx, eax
fmulp st(2)
faddp st(1)
fmul st(4)
fdiv dword [esp + 0x44]
call fcn.00499690
mov edx, dword [esp + 0x48]
sub edx, eax
mov eax, dword [esp + 0x64]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + ebp]
mov ebp, dword [esp + 0x38]
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x50]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x18], eax
lea eax, [ecx + 1]
mov ecx, eax
imul eax, ebp
imul ecx, dword [esp + 0x3c]
add eax, edx
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x429f6b
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
jge 0x429f15
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x429f15
cmp dword [esp + 0x28], 0
jl 0x429f15
test eax, eax
jge 0x429f2e
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x38]
sub ecx, dword [esp + 0x3c]
sub eax, ebp
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x429ef2
jmp 0x429f6b
cmp esi, edi
mov ebp, dword [esp + 0x38]
jg 0x429f6b
mov eax, edx
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x60], eax
jge 0x429f5b
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x429f5b
cmp dword [esp + 0x60], 0
jl 0x429f5b
test eax, eax
jge 0x429f6b
add ebx, dword [esp + 0x3c]
add dword [esp + 0x18], 2
inc esi
add edx, ebp
cmp esi, edi
jle 0x429f36
sub edi, esi
inc edi
test edi, edi
jle 0x429fbe
mov ecx, dword [esp + 0x8c]
mov eax, edx
sar eax, 0x10
mov eax, dword [ecx + eax*4]
mov esi, ebx
sar esi, 0x10
add eax, esi
mov esi, dword [esp + 0x14]
movzx ax, byte [eax + esi]
movzx eax, ax
test ax, ax
je 0x429fae
mov esi, dword [esp + 0x80]
movzx eax, ax
mov ax, word [esi + eax*2]
mov esi, dword [esp + 0x18]
mov word [esi], ax
add ebx, dword [esp + 0x3c]
add dword [esp + 0x18], 2
add edx, ebp
sub edi, 1
jne 0x429f79
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x7c]
jge 0x429fd2
mov ecx, dword [esp + 0x58]
sub dword [esp + 0x2c], ecx
jmp 0x429fda
mov edx, dword [esp + 0x5c]
add dword [esp + 0x2c], edx
cmp eax, dword [esp + 0x68]
jge 0x429fea
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x24], ecx
jmp 0x429ff2
mov edx, dword [esp + 0x58]
sub dword [esp + 0x24], edx
mov ebp, dword [esp + 0x34]
inc eax
add ebp, 4
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebp
jle 0x429e40
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
mov eax, dword [esp + 0x2b8]
add eax, ecx
cmp eax, 0x100
jg 0x42a5c2
cmp ecx, 0x80
jne 0x42a2e5
cmp esi, dword [esp + 0x54]
mov dword [esp + 0x30], esi
jg 0x42a014
mov edx, dword [esp + 0x64]
fild dword [esp + 0x78]
mov eax, dword [0x52be3c]
mov ecx, dword [0x52be18]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
fild dword [esp + 0x74]
sub eax, edx
sub ecx, edx
mov edx, dword [esp + 0x18]
shl edx, 0x10
fstp dword [esp + 0x44]
fld qword [0x4a6df0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
fld dword [esp + 0x28]
fld dword [esp + 0x84]
lea ebp, [esi + edx]
fld dword [esp + 0x60]
shl ebx, 0x10
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ebp
jmp 0x42a0bc
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
sar esi, 0x10
sar edi, 0x10
cmp esi, eax
mov dword [esp + 0x18], esi
jge 0x42a0d8
mov esi, eax
mov dword [esp + 0x18], eax
cmp edi, ecx
jle 0x42a0de
mov edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2b0]
fild dword [esp + 0x30]
fdiv dword [esp + 0x2b4]
fld st(3)
fmul st(2)
fld st(3)
fmul st(2)
fsubp st(1)
fmul st(6)
fdiv st(5)
call fcn.00499690
fmul st(3)
fld st(2)
sub ebx, eax
fmulp st(2)
faddp st(1)
fmul st(4)
fdiv dword [esp + 0x44]
call fcn.00499690
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x88]
sub ecx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
lea ecx, [esi + eax]
mov eax, dword [edx + 0x2c]
mov edx, dword [eax + ebp]
mov ebp, dword [esp + 0x18]
mov eax, edi
sub eax, esi
inc eax
lea edx, [edx + ecx*2]
add edx, dword [esp + 0x50]
mov ecx, eax
imul eax, dword [esp + 0x38]
imul ecx, dword [esp + 0x3c]
add eax, ebp
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42a1e5
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
jge 0x42a189
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a189
cmp dword [esp + 0x28], 0
jl 0x42a189
test eax, eax
jge 0x42a1a4
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x38]
sub ecx, dword [esp + 0x3c]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42a166
mov ebp, dword [esp + 0x18]
jmp 0x42a1e5
cmp esi, edi
mov ebp, dword [esp + 0x18]
jg 0x42a1e5
mov eax, ebp
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x60], eax
jge 0x42a1d1
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a1d1
cmp dword [esp + 0x60], 0
jl 0x42a1d1
test eax, eax
jge 0x42a1e1
add ebx, dword [esp + 0x3c]
add ebp, dword [esp + 0x38]
inc esi
add edx, 2
cmp esi, edi
jle 0x42a1ac
mov dword [esp + 0x18], ebp
sub edi, esi
inc edi
test edi, edi
jle 0x42a284
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x8c]
mov ecx, ebp
sar ecx, 0x10
mov ecx, dword [esi + ecx*4]
mov eax, ebx
sar eax, 0x10
add ecx, eax
mov eax, dword [esp + 0x14]
movzx cx, byte [ecx + eax]
movzx eax, cx
test ax, ax
je 0x42a26a
mov ecx, dword [esp + 0x80]
movzx eax, ax
movzx ecx, word [ecx + eax*2]
movzx eax, word [edx]
shr eax, 1
and eax, 0x7bef
mov esi, eax
mov edi, ecx
and edi, 0xf800
and esi, 0xf800
add esi, edi
mov edi, eax
mov ebp, ecx
and ebp, 0x7e0
and edi, 0x7e0
add edi, ebp
mov ebp, dword [esp + 0x18]
and eax, 0x1f
and ecx, 0x1f
or esi, edi
add eax, ecx
or esi, eax
mov word [edx], si
add ebp, dword [esp + 0x38]
add ebx, dword [esp + 0x3c]
add edx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ebp
jne 0x42a1f4
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x7c]
jge 0x42a298
mov edx, dword [esp + 0x58]
sub dword [esp + 0x2c], edx
jmp 0x42a2a0
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0x68]
jge 0x42a2b0
mov edx, dword [esp + 0x5c]
add dword [esp + 0x24], edx
jmp 0x42a2b8
mov ecx, dword [esp + 0x58]
sub dword [esp + 0x24], ecx
mov ebp, dword [esp + 0x34]
inc eax
add ebp, 4
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebp
jle 0x42a0b0
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
cmp eax, 0x100
jg 0x42a5c2
cmp esi, dword [esp + 0x54]
mov dword [esp + 0x30], esi
jg 0x42a014
mov edx, dword [esp + 0x64]
fild dword [esp + 0x78]
mov eax, dword [0x52be3c]
mov ecx, dword [0x52be18]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
fild dword [esp + 0x74]
sub eax, edx
sub ecx, edx
mov edx, dword [esp + 0x18]
shl edx, 0x10
fstp dword [esp + 0x44]
fld qword [0x4a6df0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
fld dword [esp + 0x28]
fld dword [esp + 0x84]
lea ebp, [esi + edx]
fld dword [esp + 0x60]
shl ebx, 0x10
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ebp
jmp 0x42a371
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
sar esi, 0x10
sar edi, 0x10
cmp esi, eax
mov dword [esp + 0x18], esi
jge 0x42a38d
mov esi, eax
mov dword [esp + 0x18], eax
cmp edi, ecx
jle 0x42a393
mov edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2b0]
fild dword [esp + 0x30]
fdiv dword [esp + 0x2b4]
fld st(3)
fmul st(2)
fld st(3)
fmul st(2)
fsubp st(1)
fmul st(6)
fdiv st(5)
call fcn.00499690
fmul st(3)
fld st(2)
sub ebx, eax
fmulp st(2)
faddp st(1)
fmul st(4)
fdiv dword [esp + 0x44]
call fcn.00499690
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x88]
sub ecx, eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], ecx
lea ecx, [esi + eax]
mov eax, dword [edx + 0x2c]
mov edx, dword [eax + ebp]
mov ebp, dword [esp + 0x18]
mov eax, edi
sub eax, esi
inc eax
lea edx, [edx + ecx*2]
add edx, dword [esp + 0x50]
mov ecx, eax
imul eax, dword [esp + 0x38]
imul ecx, dword [esp + 0x3c]
add eax, ebp
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42a49a
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
jge 0x42a43e
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a43e
cmp dword [esp + 0x28], 0
jl 0x42a43e
test eax, eax
jge 0x42a459
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x38]
sub ecx, dword [esp + 0x3c]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42a41b
mov ebp, dword [esp + 0x18]
jmp 0x42a49a
cmp esi, edi
mov ebp, dword [esp + 0x18]
jg 0x42a49a
mov eax, ebp
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x60], eax
jge 0x42a486
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a486
cmp dword [esp + 0x60], 0
jl 0x42a486
test eax, eax
jge 0x42a496
add ebx, dword [esp + 0x3c]
add ebp, dword [esp + 0x38]
inc esi
add edx, 2
cmp esi, edi
jle 0x42a461
mov dword [esp + 0x18], ebp
sub edi, esi
inc edi
test edi, edi
jle 0x42a561
mov esi, dword [esp + 0x2bc]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x8c]
mov ecx, ebp
sar ecx, 0x10
mov ecx, dword [edi + ecx*4]
mov eax, ebx
sar eax, 0x10
add ecx, eax
mov eax, dword [esp + 0x14]
movzx cx, byte [ecx + eax]
movzx eax, cx
test ax, ax
je 0x42a547
mov ecx, dword [esp + 0x80]
movzx eax, ax
movzx ecx, word [ecx + eax*2]
movzx eax, word [edx]
mov edi, eax
and edi, 0xf800
imul edi, esi
shr edi, 8
mov ebp, ecx
and ebp, 0xf800
and edi, 0xf800
add edi, ebp
mov ebp, eax
and ebp, 0x7e0
imul ebp, esi
shr ebp, 8
mov esi, ecx
and ebp, 0x7e0
and esi, 0x7e0
add ebp, esi
mov esi, dword [esp + 0x2bc]
and eax, 0x1f
imul eax, esi
shr eax, 8
and eax, 0x1f
and ecx, 0x1f
or edi, ebp
mov ebp, dword [esp + 0x18]
add eax, ecx
or edi, eax
mov word [edx], di
add ebp, dword [esp + 0x38]
add ebx, dword [esp + 0x3c]
add edx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ebp
jne 0x42a4b0
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x7c]
jge 0x42a575
mov edx, dword [esp + 0x58]
sub dword [esp + 0x2c], edx
jmp 0x42a57d
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0x68]
jge 0x42a58d
mov edx, dword [esp + 0x5c]
add dword [esp + 0x24], edx
jmp 0x42a595
mov ecx, dword [esp + 0x58]
sub dword [esp + 0x24], ecx
mov ebp, dword [esp + 0x34]
inc eax
add ebp, 4
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebp
jle 0x42a365
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
mov dword [esp + 0x30], esi
cmp ecx, 0x80
jne 0x42a889
cmp esi, dword [esp + 0x54]
jg 0x42a014
mov edx, dword [esp + 0x64]
fild dword [esp + 0x78]
mov eax, dword [0x52be3c]
mov ecx, dword [0x52be18]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
fild dword [esp + 0x74]
sub eax, edx
sub ecx, edx
mov edx, dword [esp + 0x18]
shl edx, 0x10
fstp dword [esp + 0x44]
fld qword [0x4a6df0]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
fld dword [esp + 0x28]
fld dword [esp + 0x84]
lea ebp, [esi + edx]
fld dword [esp + 0x60]
shl ebx, 0x10
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ebp
jmp 0x42a64f
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
sar esi, 0x10
sar edi, 0x10
cmp esi, eax
mov dword [esp + 0x18], esi
jge 0x42a66b
mov esi, eax
mov dword [esp + 0x18], eax
cmp edi, ecx
jle 0x42a671
mov edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2b0]
fild dword [esp + 0x30]
fdiv dword [esp + 0x2b4]
fld st(3)
fmul st(2)
fld st(3)
fmul st(2)
fsubp st(1)
fmul st(6)
fdiv st(5)
call fcn.00499690
fmul st(3)
fld st(2)
sub ebx, eax
fmulp st(2)
faddp st(1)
fmul st(4)
fdiv dword [esp + 0x44]
call fcn.00499690
mov edx, dword [esp + 0x48]
sub edx, eax
mov eax, dword [esp + 0x64]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + ebp]
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x50]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x18], eax
lea eax, [ecx + 1]
mov ecx, eax
imul eax, dword [esp + 0x38]
imul ecx, dword [esp + 0x3c]
add eax, edx
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42a763
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
jge 0x42a716
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a716
cmp dword [esp + 0x28], 0
jl 0x42a716
test eax, eax
jge 0x42a72d
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x38]
sub ecx, dword [esp + 0x3c]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42a6f3
jmp 0x42a763
cmp esi, edi
jg 0x42a763
mov ebp, dword [esp + 0x70]
mov ecx, edx
sar ecx, 0x10
cmp ecx, ebp
jge 0x42a751
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a751
test ecx, ecx
jl 0x42a751
test eax, eax
jge 0x42a763
add ebx, dword [esp + 0x3c]
add edx, dword [esp + 0x38]
add dword [esp + 0x18], 2
inc esi
cmp esi, edi
jle 0x42a735
sub edi, esi
inc edi
test edi, edi
jle 0x42a828
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x8c]
mov eax, edx
sar eax, 0x10
mov eax, dword [esi + eax*4]
mov ecx, ebx
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x14]
movzx ax, byte [eax + ecx]
movzx eax, ax
test ax, ax
je 0x42a810
movzx ecx, ax
mov eax, dword [esp + 0x80]
movzx esi, word [eax + ecx*2]
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx]
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 0x42a7d4
mov ecx, 0xf800
mov edi, eax
mov ebp, esi
and edi, 0x7e0
and ebp, 0x7e0
add edi, ebp
cmp edi, 0x7e0
jbe 0x42a7f3
mov edi, 0x7e0
and eax, 0x1f
and esi, 0x1f
add eax, esi
cmp eax, 0x1f
jbe 0x42a805
mov eax, 0x1f
or ecx, edi
or ecx, eax
mov eax, dword [esp + 0x18]
mov word [eax], cx
add ebx, dword [esp + 0x3c]
add edx, dword [esp + 0x38]
add dword [esp + 0x18], 2
sub dword [esp + 0x20], 1
jne 0x42a772
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x7c]
jge 0x42a83c
mov ecx, dword [esp + 0x58]
sub dword [esp + 0x2c], ecx
jmp 0x42a844
mov edx, dword [esp + 0x5c]
add dword [esp + 0x2c], edx
cmp eax, dword [esp + 0x68]
jge 0x42a854
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x24], ecx
jmp 0x42a85c
mov edx, dword [esp + 0x58]
sub dword [esp + 0x24], edx
mov ebp, dword [esp + 0x34]
inc eax
add ebp, 4
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ebp
jle 0x42a643
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
cmp esi, dword [esp + 0x54]
jg 0x42a014
mov edx, dword [esp + 0x64]
fild dword [esp + 0x78]
mov eax, dword [0x52be3c]
mov ecx, dword [0x52be18]
sub eax, edx
fstp dword [esp + 0x28]
fild dword [esp + 0x74]
sub ecx, edx
mov edx, dword [esp + 0x20]
shl edx, 0x10
mov dword [esp + 0x1c], edx
fstp dword [esp + 0x44]
mov edx, dword [esp + 0x18]
fld qword [0x4a6df0]
fld dword [esp + 0x28]
shl edx, 0x10
fld dword [esp + 0x84]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x34]
fld dword [esp + 0x60]
add esi, edx
add esi, esi
add esi, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], esi
jmp 0x42a901
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
sar esi, 0x10
sar edi, 0x10
cmp esi, eax
mov dword [esp + 0x18], esi
jge 0x42a91d
mov esi, eax
mov dword [esp + 0x18], eax
cmp edi, ecx
jle 0x42a923
mov edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2b0]
fild dword [esp + 0x30]
fdiv dword [esp + 0x2b4]
fld st(3)
fmul st(2)
fld st(3)
fmul st(2)
fsubp st(1)
fmul st(6)
fdiv st(5)
call fcn.00499690
fmul st(3)
fld st(2)
mov ebx, dword [esp + 0x1c]
fmulp st(2)
sub ebx, eax
faddp st(1)
fmul st(4)
fdiv dword [esp + 0x44]
call fcn.00499690
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x88]
sub ebp, eax
mov eax, dword [esp + 0x64]
lea ecx, [esi + eax]
mov eax, dword [edx + 0x2c]
mov edx, dword [esp + 0x34]
mov eax, dword [eax + edx]
lea eax, [eax + ecx*2]
add eax, dword [esp + 0x50]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x18], eax
lea eax, [ecx + 1]
mov ecx, eax
imul eax, dword [esp + 0x38]
imul ecx, dword [esp + 0x3c]
add eax, ebp
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42aa1d
sar eax, 0x10
cmp eax, dword [esp + 0x70]
mov dword [esp + 0x28], eax
jge 0x42a9d0
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42a9d0
cmp dword [esp + 0x28], 0
jl 0x42a9d0
test eax, eax
jge 0x42a9e7
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x38]
sub ecx, dword [esp + 0x3c]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42a9ad
jmp 0x42aa1d
cmp esi, edi
jg 0x42aa1d
mov edx, dword [esp + 0x70]
mov ecx, ebp
sar ecx, 0x10
cmp ecx, edx
jge 0x42aa0b
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x6c]
jge 0x42aa0b
test ecx, ecx
jl 0x42aa0b
test eax, eax
jge 0x42aa1d
add ebx, dword [esp + 0x3c]
add ebp, dword [esp + 0x38]
add dword [esp + 0x18], 2
inc esi
cmp esi, edi
jle 0x42a9ef
sub edi, esi
inc edi
test edi, edi
jle 0x42ab0c
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x8c]
mov edx, ebp
sar edx, 0x10
mov edx, dword [ecx + edx*4]
mov eax, ebx
sar eax, 0x10
add edx, eax
mov eax, dword [esp + 0x14]
movzx cx, byte [edx + eax]
movzx eax, cx
test ax, ax
je 0x42aaf4
mov ecx, dword [esp + 0x18]
movzx ecx, word [ecx]
movzx edx, ax
mov eax, dword [esp + 0x80]
movzx esi, word [eax + edx*2]
mov eax, ecx
and eax, 0xf800
imul eax, dword [esp + 0x2bc]
shr eax, 8
mov edx, esi
and eax, 0xf800
and edx, 0xf800
add eax, edx
cmp eax, 0xf800
jbe 0x42aa99
mov eax, 0xf800
mov edx, ecx
and edx, 0x7e0
imul edx, dword [esp + 0x2bc]
shr edx, 8
mov edi, esi
and edx, 0x7e0
and edi, 0x7e0
add edx, edi
cmp edx, 0x7e0
jbe 0x42aac9
mov edx, 0x7e0
and ecx, 0x1f
imul ecx, dword [esp + 0x2bc]
shr ecx, 8
and ecx, 0x1f
and esi, 0x1f
add ecx, esi
cmp ecx, 0x1f
jbe 0x42aae9
mov ecx, 0x1f
or eax, edx
or eax, ecx
mov ecx, dword [esp + 0x18]
mov word [ecx], ax
add ebx, dword [esp + 0x3c]
add ebp, dword [esp + 0x38]
add dword [esp + 0x18], 2
sub dword [esp + 0x20], 1
jne 0x42aa2c
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x7c]
jge 0x42ab20
mov edx, dword [esp + 0x58]
sub dword [esp + 0x2c], edx
jmp 0x42ab28
mov ecx, dword [esp + 0x5c]
add dword [esp + 0x2c], ecx
cmp eax, dword [esp + 0x68]
jge 0x42ab38
mov edx, dword [esp + 0x5c]
add dword [esp + 0x24], edx
jmp 0x42ab40
mov ecx, dword [esp + 0x58]
sub dword [esp + 0x24], ecx
add dword [esp + 0x34], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
jle 0x42a8f9
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x280
ret
pop edi
fstp st(0)
pop esi
fstp st(0)
pop ebp
pop ebx
add esp, 0x280
ret