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

Disassembly:
sub esp, 0x278
push ebx
fld dword [esp + 0x288]
push ebp
fadd qword [0x4a6ba0]
mov ebp, dword [esp + 0x288]
push esi
mov esi, dword [esp + 0x288]
mov eax, dword [esi]
push edi
mov edi, dword [eax + 4]
mov ebx, dword [esp + 0x2b0]
imul edi, ebp
add edi, 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 [edi + 0x2c]
sub esp, 8
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ecx
fstp qword [esp]
call sub.MSVCR90.dll_floor
call fcn.00499690
fld dword [esp + 0x2a0]
mov dword [esp + 0x64], eax
fadd qword [0x4a6ba0]
fstp qword [esp]
call sub.MSVCR90.dll_floor
add esp, 8
call fcn.00499690
lea edx, [esp + 0x88]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x78], edx
cmp ebx, 0x100
jne 0x42ad02
mov eax, dword [esp + 0x2b4]
test eax, eax
jne 0x42ac97
fld dword [esp + 0x2ac]
sub esp, 0x1c
fstp dword [esp + 0x18]
fld dword [esp + 0x2c4]
fstp dword [esp + 0x14]
fld dword [esp + 0x2c0]
fstp dword [esp + 0x10]
fld dword [esp + 0x2bc]
fstp dword [esp + 0xc]
fld dword [esp + 0x2b8]
fstp dword [esp + 8]
fld dword [esp + 0x2b4]
fstp dword [esp + 4]
fld dword [esp + 0x2b0]
fstp dword [esp]
push ebp
push esi
call fcn.0041fae0
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
cmp eax, 0x100
jne 0x42ad17
fld dword [esp + 0x2ac]
sub esp, 0x1c
fstp dword [esp + 0x18]
fld dword [esp + 0x2c4]
fstp dword [esp + 0x14]
fld dword [esp + 0x2c0]
fstp dword [esp + 0x10]
fld dword [esp + 0x2bc]
fstp dword [esp + 0xc]
fld dword [esp + 0x2b8]
fstp dword [esp + 8]
fld dword [esp + 0x2b4]
fstp dword [esp + 4]
fld dword [esp + 0x2b0]
fstp dword [esp]
push ebp
push esi
call fcn.00428870
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
test ebx, ebx
jne 0x42ad17
cmp dword [esp + 0x2b4], 0x100
je 0x42b76f
fld dword [esp + 0x2a0]
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 + 0x70], eax
test esi, esi
jge 0x42ad55
fld dword [esp + 0x29c]
neg esi
fadd st(1)
mov dword [esp + 0x70], esi
fstp dword [esp + 0x29c]
fld dword [esp + 0x2a4]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
mov dword [esp + 0x6c], eax
test eax, eax
jge 0x42ad85
fadd dword [esp + 0x29c]
neg eax
mov dword [esp + 0x6c], eax
fstp dword [esp + 0x29c]
jmp 0x42ad87
fstp st(0)
test esi, esi
je 0x42c273
test eax, eax
je 0x42c273
fldz
fld dword [esp + 0x29c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x42addb
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 + 0x29c]
fld dword [esp + 0x29c]
fmul qword [0x4a6e00]
call fcn.00499690
cdq
mov ecx, 0xb40
idiv ecx
mov esi, edx
test esi, esi
jne 0x42ae58
fmul dword [esp + 0x2ac]
mov edi, dword [esp + 0x28c]
push ebx
mov ebx, dword [esp + 0x2b8]
fstp dword [esp + 0x18]
sub esp, 0x10
fld dword [esp + 0x28]
mov eax, ebp
fstp dword [esp + 0xc]
fchs
fmul dword [esp + 0x2bc]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 8]
fld dword [esp + 0x2ac]
fstp dword [esp + 4]
fld dword [esp + 0x2a8]
fstp dword [esp]
call fcn.004185a0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
cmp esi, 0x5a0
jne 0x42aec4
fchs
mov edi, dword [esp + 0x28c]
fmul dword [esp + 0x2ac]
push ebx
mov ebx, dword [esp + 0x2b8]
sub esp, 0x10
fstp dword [esp + 0x28]
mov eax, ebp
fld dword [esp + 0x28]
fstp dword [esp + 0xc]
fmul dword [esp + 0x2bc]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fstp dword [esp + 8]
fld dword [esp + 0x2ac]
fstp dword [esp + 4]
fld dword [esp + 0x2a8]
fstp dword [esp]
call fcn.004185a0
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
mov eax, dword [edi + 0xc]
mov edx, dword [edi + 8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
lea eax, [esi + 0x2d0]
cdq
idiv ecx
mov ecx, dword [0x52b310]
mov eax, 0xb60b60b7
mov ebx, dword [edi]
mov ebp, dword [edi + 4]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebp
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x14], edx
imul esi
fild dword [esp + 0x14]
fstp dword [esp + 0x7c]
fld dword [esp + 0x7c]
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 + 0x70]
fstp dword [esp + 0x58]
fmul dword [esp + 0x58]
fstp dword [esp + 0x34]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fld dword [esp + 0x2a8]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.00499690
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
shl eax, 0x10
cdq
idiv dword [esp + 0x6c]
mov dword [esp + 0x14], eax
fidivr dword [esp + 0x14]
call fcn.00499690
cmp esi, 0x2d0
mov dword [esp + 0x3c], eax
jge 0x42b00d
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 + 0x4c]
dec ebx
fild dword [esp + 0x14]
mov dword [esp + 0x14], ebx
sub ebp, ecx
dec ebp
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x48]
fild dword [esp + 0x14]
mov dword [esp + 0x14], ebp
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x38]
fstp dword [esp + 0x28]
fstp dword [esp + 0x40]
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 0x42b181
cmp esi, 0x5a0
jge 0x42b080
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 ebp, ecx
fld dword [esp + 0x1c]
dec ebp
fst dword [esp + 0x4c]
neg eax
fild dword [esp + 0x14]
mov dword [esp + 0x14], ebp
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x48]
fxch st(1)
fstp dword [esp + 0x38]
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x40]
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
jmp 0x42b171
cmp esi, 0x870
jge 0x42b0ff
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 ebp, ecx
dec ebp
mov dword [esp + 0x14], ebp
fstp dword [esp + 0x1c]
neg eax
fld dword [esp + 0x1c]
neg ecx
fst dword [esp + 0x4c]
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 + 0x38]
fstp dword [esp + 0x28]
fstp dword [esp + 0x40]
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 0x42b181
cmp esi, 0xb40
jge 0x42c273
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 ebp, ecx
dec ebp
fstp dword [esp + 0x1c]
mov dword [esp + 0x14], ebp
fld dword [esp + 0x1c]
neg ecx
fst dword [esp + 0x4c]
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 + 0x38]
fild dword [esp + 0x14]
mov dword [esp + 0x14], ebx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x40]
fild dword [esp + 0x14]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fst dword [esp + 0x28]
fstp dword [esp + 0x50]
fstp dword [esp + 0x1c]
fstp dword [esp + 0x14]
fld dword [esp + 0x4c]
push ecx
fmul st(2)
fstp dword [esp + 0x50]
fld dword [esp + 0x4c]
fmul st(1)
fstp dword [esp + 0x4c]
fld dword [esp + 0x3c]
fmul st(2)
fstp dword [esp + 0x3c]
fld dword [esp + 0x44]
fmul st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x2c]
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fmul dword [esp + 0x20]
fstp dword [esp + 0x20]
fld dword [esp + 0x4c]
fmul dword [esp + 0x28]
fld dword [esp + 0x50]
fmul dword [esp + 0x38]
fsubp st(1)
fmul dword [esp + 0x2b0]
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040f160
fld dword [esp + 0x20]
mov ebx, eax
fmul dword [esp + 0x28]
mov dword [esp + 0x78], ebx
fld dword [esp + 0x2c]
fmul dword [esp + 0x38]
fsubp st(1)
fmul dword [esp + 0x2b0]
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fstp dword [esp]
call fcn.0040f160
fld dword [esp + 0x44]
mov ebp, eax
fmul dword [esp + 0x28]
mov dword [esp + 0x6c], ebp
fld dword [esp + 0x3c]
fmul dword [esp + 0x38]
fsubp st(1)
fmul dword [esp + 0x2b0]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fstp dword [esp]
call fcn.0040f160
fld dword [esp + 0x18]
mov esi, eax
fmul dword [esp + 0x2a8]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esp + 0x28]
fld dword [esp + 0x54]
fmul dword [esp + 0x2a4]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fmul dword [esp + 0x38]
fsubp st(1)
fmul dword [esp + 0x2b0]
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, ebx
mov dword [esp + 0x14], eax
je 0x42b34d
mov eax, esi
sub eax, ebp
mov dword [esp + 0x50], eax
je 0x42b34d
fld dword [esp + 0x40]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fld dword [esp + 0x38]
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 + 0x4c]
fmul st(4)
faddp st(1)
fsubr st(1)
fld qword [0x4a6da0]
fmul st(1), st(0)
fld dword [esp + 0x2a8]
fld st(0)
fmulp st(3)
fild dword [esp + 0x14]
fdivp st(3)
fxch st(2)
call fcn.00499690
mov dword [esp + 0x38], eax
test eax, eax
jge 0x42b30b
neg eax
mov dword [esp + 0x38], eax
fld dword [esp + 0x1c]
fmulp st(4)
fld dword [esp + 0x28]
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 ebx, eax
mov dword [esp + 0x40], eax
test ebx, ebx
jge 0x42b33c
neg ebx
mov dword [esp + 0x40], ebx
fmulp st(1)
fmulp st(1)
call fcn.00499690
mov ebp, eax
mov dword [esp + 0x30], ebp
jmp 0x42b3ae
fld dword [esp + 0x48]
xor ebx, ebx
fld dword [esp + 0x34]
mov dword [esp + 0x40], ebx
fld st(0)
mov dword [esp + 0x38], ebx
fmulp st(2)
fld dword [esp + 0x4c]
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 + 0x2a8]
fld st(0)
fmulp st(3)
fxch st(2)
call fcn.00499690
fld dword [esp + 0x1c]
fmulp st(3)
mov ebp, eax
fld dword [esp + 0x28]
mov dword [esp + 0x30], ebp
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 + 0x2c]
mov dword [esp + 0x24], eax
cmp esi, ecx
jge 0x42b3e9
cmp esi, dword [esp + 0x74]
jge 0x42b3cc
sub ebp, dword [esp + 0x38]
jmp 0x42b3ce
add ebp, ebx
cmp esi, dword [esp + 0x68]
jge 0x42b3d8
add eax, ebx
jmp 0x42b3dc
sub eax, dword [esp + 0x38]
inc esi
cmp esi, ecx
jl 0x42b3c0
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], ebp
mov eax, dword [0x52be08]
sub eax, dword [esp + 0x2c]
cmp dword [esp + 0x54], eax
jle 0x42b3fc
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x290]
mov ebp, dword [esp + 0x28c]
push edx
mov eax, ebp
call fcn.00417890
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x42b76f
mov eax, dword [0x52b3b0]
push eax
mov eax, dword [0x52b3ac]
call fcn.00417890
mov ebx, dword [ebp + 0x14]
add esp, 4
mov dword [esp + 0x50], eax
test ebx, ebx
jne 0x42b451
mov ecx, dword [edi + 0x30]
push ecx
mov eax, ebp
call fcn.004177d0
add esp, 4
mov ebx, eax
jmp 0x42b456
call fcn.00413ac0
mov eax, dword [esp + 0x2b0]
lea edx, [ebx + 0x5c]
cmp eax, 0x100
jne 0x42b470
mov dword [esp + 0x78], edx
jmp 0x42b52c
test eax, eax
jne 0x42b490
mov edx, dword [edi + 0x14]
add edx, edx
push edx
push eax
lea eax, [esp + 0x90]
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
jmp 0x42b52c
mov edi, dword [edi + 0x14]
cmp eax, 0x80
jne 0x42b4ce
mov eax, 1
cmp edi, eax
jle 0x42b52c
jmp 0x42b4b0
mov cx, word [edx + eax*2]
shr cx, 1
mov ebx, 0x7bef
and cx, bx
mov word [esp + eax*2 + 0x88], cx
inc eax
cmp eax, edi
jl 0x42b4b0
jmp 0x42b52c
mov ecx, 1
cmp edi, ecx
jle 0x42b52c
mov ebx, eax
movzx eax, word [edx + ecx*2]
mov ebp, eax
and ebp, 0x7e0
imul ebp, ebx
mov ebx, eax
and ebx, 0x1f
imul ebx, dword [esp + 0x2b0]
shr ebp, 8
shr ebx, 8
and ebp, 0x7e0
and ebx, 0x1f
or ebp, ebx
mov ebx, dword [esp + 0x2b0]
and eax, 0xf800
imul eax, ebx
shr eax, 8
and eax, 0xf800
or ebp, eax
mov word [esp + ecx*2 + 0x88], bp
inc ecx
cmp ecx, edi
jl 0x42b4d9
mov ecx, dword [esp + 0x2b4]
test ecx, ecx
jne 0x42b77a
cmp esi, dword [esp + 0x54]
mov dword [esp + 0x34], esi
jg 0x42b76f
fild dword [esp + 0x70]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
shl eax, 0x10
fild dword [esp + 0x6c]
mov dword [esp + 0x48], eax
lea eax, [esi + edx]
shl ebx, 0x10
fstp dword [esp + 0x4c]
add eax, eax
fld qword [0x4a6df0]
add eax, eax
fld dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
fld dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
fld dword [esp + 0x58]
jmp 0x42b596
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov eax, dword [0x52be18]
mov ecx, dword [0x52be3c]
sar esi, 0x10
mov edx, ebp
sub edx, esi
sar edi, 0x10
cmp edx, eax
mov dword [esp + 0x18], esi
jle 0x42b5c7
mov esi, ebp
sub esi, eax
mov dword [esp + 0x18], esi
mov eax, ebp
sub eax, edi
cmp eax, ecx
jge 0x42b5d3
mov edi, ebp
sub edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2a8]
fild dword [esp + 0x34]
fdiv dword [esp + 0x2ac]
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 + 0x4c]
call fcn.00499690
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
sub edx, eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax]
sub ebp, esi
lea eax, [eax + ebp*2]
add eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x3c]
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 + 0x44]
add eax, edx
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42b6cf
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
jge 0x42b679
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42b679
cmp dword [esp + 0x28], 0
jl 0x42b679
test eax, eax
jge 0x42b692
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0x3c]
sub ecx, dword [esp + 0x44]
sub eax, ebp
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42b656
jmp 0x42b6cf
cmp esi, edi
mov ebp, dword [esp + 0x3c]
jg 0x42b6cf
mov eax, edx
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jge 0x42b6bf
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42b6bf
cmp dword [esp + 0x58], 0
jl 0x42b6bf
test eax, eax
jge 0x42b6cf
add ebx, dword [esp + 0x44]
sub dword [esp + 0x18], 2
inc esi
add edx, ebp
cmp esi, edi
jle 0x42b69a
sub edi, esi
inc edi
test edi, edi
jle 0x42b71f
mov ecx, dword [esp + 0x80]
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 0x42b70f
mov esi, dword [esp + 0x78]
movzx eax, ax
mov ax, word [esi + eax*2]
mov esi, dword [esp + 0x18]
mov word [esi], ax
add ebx, dword [esp + 0x44]
sub dword [esp + 0x18], 2
add edx, ebp
sub edi, 1
jne 0x42b6dd
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x74]
jge 0x42b733
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x30], ecx
jmp 0x42b73b
mov edx, dword [esp + 0x40]
add dword [esp + 0x30], edx
cmp eax, dword [esp + 0x68]
jge 0x42b74b
mov ecx, dword [esp + 0x40]
add dword [esp + 0x24], ecx
jmp 0x42b753
mov edx, dword [esp + 0x38]
sub dword [esp + 0x24], edx
add dword [esp + 0x2c], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
jle 0x42b592
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
mov eax, dword [esp + 0x2b0]
add eax, ecx
cmp eax, 0x100
jg 0x42bcf3
cmp ecx, 0x80
jne 0x42ba2b
cmp esi, dword [esp + 0x54]
mov dword [esp + 0x34], esi
jg 0x42b76f
fild dword [esp + 0x70]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
shl eax, 0x10
fild dword [esp + 0x6c]
mov dword [esp + 0x48], eax
lea eax, [esi + ecx]
shl ebx, 0x10
fstp dword [esp + 0x4c]
add eax, eax
fld qword [0x4a6df0]
add eax, eax
fld dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
fld dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
fld dword [esp + 0x58]
jmp 0x42b7f1
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov eax, dword [0x52be18]
mov ecx, dword [0x52be3c]
sar esi, 0x10
mov edx, ebp
sub edx, esi
sar edi, 0x10
cmp edx, eax
mov dword [esp + 0x18], esi
jle 0x42b822
mov esi, ebp
sub esi, eax
mov dword [esp + 0x18], esi
mov eax, ebp
sub eax, edi
cmp eax, ecx
jge 0x42b82e
mov edi, ebp
sub edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2a8]
fild dword [esp + 0x34]
fdiv dword [esp + 0x2ac]
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 + 0x4c]
call fcn.00499690
mov ecx, dword [esp + 0x48]
sub ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [eax + edx]
mov eax, edi
sub eax, esi
sub ebp, esi
lea edx, [ecx + ebp*2]
mov ebp, dword [esp + 0x18]
add edx, dword [esp + 0x50]
inc eax
mov ecx, eax
imul eax, dword [esp + 0x3c]
imul ecx, dword [esp + 0x44]
add eax, ebp
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42b934
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
jge 0x42b8d8
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42b8d8
cmp dword [esp + 0x28], 0
jl 0x42b8d8
test eax, eax
jge 0x42b8f3
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x3c]
sub ecx, dword [esp + 0x44]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42b8b5
mov ebp, dword [esp + 0x18]
jmp 0x42b934
cmp esi, edi
mov ebp, dword [esp + 0x18]
jg 0x42b934
mov eax, ebp
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jge 0x42b920
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42b920
cmp dword [esp + 0x58], 0
jl 0x42b920
test eax, eax
jge 0x42b930
add ebx, dword [esp + 0x44]
add ebp, dword [esp + 0x3c]
inc esi
sub edx, 2
cmp esi, edi
jle 0x42b8fb
mov dword [esp + 0x18], ebp
sub edi, esi
inc edi
test edi, edi
jle 0x42b9d0
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x80]
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 0x42b9b6
mov ecx, dword [esp + 0x78]
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 + 0x3c]
add ebx, dword [esp + 0x44]
sub edx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ebp
jne 0x42b943
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x74]
jge 0x42b9e4
mov edx, dword [esp + 0x38]
sub dword [esp + 0x30], edx
jmp 0x42b9ec
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
cmp eax, dword [esp + 0x68]
jge 0x42b9fc
mov edx, dword [esp + 0x40]
add dword [esp + 0x24], edx
jmp 0x42ba04
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x24], ecx
add dword [esp + 0x2c], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
jle 0x42b7ed
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
cmp eax, 0x100
jg 0x42bcf3
cmp esi, dword [esp + 0x54]
mov dword [esp + 0x34], esi
jg 0x42b76f
fild dword [esp + 0x70]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
shl eax, 0x10
fild dword [esp + 0x6c]
mov dword [esp + 0x48], eax
lea eax, [esi + edx]
shl ebx, 0x10
fstp dword [esp + 0x4c]
add eax, eax
fld qword [0x4a6df0]
add eax, eax
fld dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
fld dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
fld dword [esp + 0x58]
jmp 0x42ba91
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov eax, dword [0x52be18]
mov ecx, dword [0x52be3c]
sar esi, 0x10
mov edx, ebp
sub edx, esi
sar edi, 0x10
cmp edx, eax
mov dword [esp + 0x18], esi
jle 0x42bac2
mov esi, ebp
sub esi, eax
mov dword [esp + 0x18], esi
mov eax, ebp
sub eax, edi
cmp eax, ecx
jge 0x42bace
mov edi, ebp
sub edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2a8]
fild dword [esp + 0x34]
fdiv dword [esp + 0x2ac]
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 + 0x4c]
call fcn.00499690
mov ecx, dword [esp + 0x48]
sub ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0x2c]
mov ecx, dword [eax + edx]
mov eax, edi
sub eax, esi
sub ebp, esi
lea edx, [ecx + ebp*2]
mov ebp, dword [esp + 0x18]
add edx, dword [esp + 0x50]
inc eax
mov ecx, eax
imul eax, dword [esp + 0x3c]
imul ecx, dword [esp + 0x44]
add eax, ebp
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42bbd4
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
jge 0x42bb78
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42bb78
cmp dword [esp + 0x28], 0
jl 0x42bb78
test eax, eax
jge 0x42bb93
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x3c]
sub ecx, dword [esp + 0x44]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42bb55
mov ebp, dword [esp + 0x18]
jmp 0x42bbd4
cmp esi, edi
mov ebp, dword [esp + 0x18]
jg 0x42bbd4
mov eax, ebp
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
jge 0x42bbc0
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42bbc0
cmp dword [esp + 0x58], 0
jl 0x42bbc0
test eax, eax
jge 0x42bbd0
add ebx, dword [esp + 0x44]
add ebp, dword [esp + 0x3c]
inc esi
sub edx, 2
cmp esi, edi
jle 0x42bb9b
mov dword [esp + 0x18], ebp
sub edi, esi
inc edi
test edi, edi
jle 0x42bc98
mov esi, dword [esp + 0x2b4]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x80]
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 0x42bc7e
mov ecx, dword [esp + 0x78]
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 + 0x2b4]
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 + 0x3c]
add ebx, dword [esp + 0x44]
sub edx, 2
sub dword [esp + 0x20], 1
mov dword [esp + 0x18], ebp
jne 0x42bbea
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x74]
jge 0x42bcac
mov edx, dword [esp + 0x38]
sub dword [esp + 0x30], edx
jmp 0x42bcb4
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
cmp eax, dword [esp + 0x68]
jge 0x42bcc4
mov edx, dword [esp + 0x40]
add dword [esp + 0x24], edx
jmp 0x42bccc
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x24], ecx
add dword [esp + 0x2c], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
jle 0x42ba8d
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
mov dword [esp + 0x34], esi
cmp ecx, 0x80
jne 0x42bfa5
cmp esi, dword [esp + 0x54]
jg 0x42b76f
fild dword [esp + 0x70]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x20]
fstp dword [esp + 0x28]
shl eax, 0x10
fild dword [esp + 0x6c]
mov dword [esp + 0x48], eax
lea eax, [esi + edx]
shl ebx, 0x10
fstp dword [esp + 0x4c]
add eax, eax
fld qword [0x4a6df0]
add eax, eax
fld dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
fld dword [esp + 0x7c]
mov dword [esp + 0x2c], eax
fld dword [esp + 0x58]
jmp 0x42bd5a
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov eax, dword [0x52be18]
mov ecx, dword [0x52be3c]
sar esi, 0x10
mov edx, ebp
sub edx, esi
sar edi, 0x10
cmp edx, eax
mov dword [esp + 0x18], esi
jle 0x42bd8b
mov esi, ebp
sub esi, eax
mov dword [esp + 0x18], esi
mov eax, ebp
sub eax, edi
cmp eax, ecx
jge 0x42bd97
mov edi, ebp
sub edi, ecx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2a8]
fild dword [esp + 0x34]
fdiv dword [esp + 0x2ac]
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 + 0x4c]
call fcn.00499690
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
sub edx, eax
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + eax]
sub ebp, esi
lea eax, [eax + ebp*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 + 0x3c]
imul ecx, dword [esp + 0x44]
add eax, edx
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42be88
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
jge 0x42be3b
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42be3b
cmp dword [esp + 0x28], 0
jl 0x42be3b
test eax, eax
jge 0x42be52
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x3c]
sub ecx, dword [esp + 0x44]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42be18
jmp 0x42be88
cmp esi, edi
jg 0x42be88
mov ebp, dword [esp + 0x64]
mov ecx, edx
sar ecx, 0x10
cmp ecx, ebp
jge 0x42be76
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42be76
test ecx, ecx
jl 0x42be76
test eax, eax
jge 0x42be88
add ebx, dword [esp + 0x44]
add edx, dword [esp + 0x3c]
sub dword [esp + 0x18], 2
inc esi
cmp esi, edi
jle 0x42be5a
sub edi, esi
inc edi
test edi, edi
jle 0x42bf4a
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x80]
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 0x42bf32
movzx ecx, ax
mov eax, dword [esp + 0x78]
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 0x42bef6
mov ecx, 0xf800
mov edi, eax
mov ebp, esi
and edi, 0x7e0
and ebp, 0x7e0
add edi, ebp
cmp edi, 0x7e0
jbe 0x42bf15
mov edi, 0x7e0
and eax, 0x1f
and esi, 0x1f
add eax, esi
cmp eax, 0x1f
jbe 0x42bf27
mov eax, 0x1f
or ecx, edi
or ecx, eax
mov eax, dword [esp + 0x18]
mov word [eax], cx
add ebx, dword [esp + 0x44]
add edx, dword [esp + 0x3c]
sub dword [esp + 0x18], 2
sub dword [esp + 0x20], 1
jne 0x42be97
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x74]
jge 0x42bf5e
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x30], ecx
jmp 0x42bf66
mov edx, dword [esp + 0x40]
add dword [esp + 0x30], edx
cmp eax, dword [esp + 0x68]
jge 0x42bf76
mov ecx, dword [esp + 0x40]
add dword [esp + 0x24], ecx
jmp 0x42bf7e
mov edx, dword [esp + 0x38]
sub dword [esp + 0x24], edx
add dword [esp + 0x2c], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
jle 0x42bd56
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
cmp esi, dword [esp + 0x54]
jg 0x42b76f
mov eax, dword [esp + 0x20]
fild dword [esp + 0x70]
shl eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
fstp dword [esp + 0x28]
fild dword [esp + 0x6c]
shl eax, 0x10
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x2c]
fstp dword [esp + 0x4c]
add esi, eax
fld qword [0x4a6df0]
add esi, esi
fld dword [esp + 0x28]
add esi, esi
fld dword [esp + 0x7c]
mov dword [esp + 0x2c], esi
fld dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x24]
mov ecx, dword [0x52be18]
mov edx, dword [0x52be3c]
sar esi, 0x10
mov ebx, eax
sub ebx, esi
sar edi, 0x10
cmp ebx, ecx
mov dword [esp + 0x18], esi
jle 0x42c027
mov esi, eax
sub esi, ecx
mov dword [esp + 0x18], esi
mov ecx, eax
sub ecx, edi
cmp ecx, edx
jge 0x42c033
mov edi, eax
sub edi, edx
fild dword [esp + 0x18]
fdiv dword [esp + 0x2a8]
fild dword [esp + 0x34]
fdiv dword [esp + 0x2ac]
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 + 0x4c]
call fcn.00499690
mov ebp, dword [esp + 0x48]
mov edx, dword [esp + 0x5c]
sub ebp, eax
mov eax, dword [esp + 0x84]
mov ecx, dword [eax + 0x2c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + ecx]
sub edx, esi
lea eax, [ecx + edx*2]
add eax, dword [esp + 0x50]
mov edx, edi
mov dword [esp + 0x18], eax
sub edx, esi
lea eax, [edx + 1]
mov ecx, eax
imul eax, dword [esp + 0x3c]
imul ecx, dword [esp + 0x44]
add eax, ebp
add ecx, ebx
cmp edi, esi
mov dword [esp + 0x20], eax
jl 0x42c12c
sar eax, 0x10
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
jge 0x42c0df
mov eax, ecx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42c0df
cmp dword [esp + 0x28], 0
jl 0x42c0df
test eax, eax
jge 0x42c0f6
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0x3c]
sub ecx, dword [esp + 0x44]
dec edi
cmp edi, esi
mov dword [esp + 0x20], eax
jge 0x42c0bc
jmp 0x42c12c
cmp esi, edi
jg 0x42c12c
mov edx, dword [esp + 0x64]
mov ecx, ebp
sar ecx, 0x10
cmp ecx, edx
jge 0x42c11a
mov eax, ebx
sar eax, 0x10
cmp eax, dword [esp + 0x60]
jge 0x42c11a
test ecx, ecx
jl 0x42c11a
test eax, eax
jge 0x42c12c
add ebx, dword [esp + 0x44]
add ebp, dword [esp + 0x3c]
sub dword [esp + 0x18], 2
inc esi
cmp esi, edi
jle 0x42c0fe
sub edi, esi
inc edi
test edi, edi
jle 0x42c218
mov dword [esp + 0x20], edi
mov edx, dword [esp + 0x80]
mov eax, ebp
sar eax, 0x10
mov eax, dword [edx + eax*4]
mov ecx, ebx
sar ecx, 0x10
add eax, ecx
mov ecx, dword [esp + 0x14]
movzx dx, byte [eax + ecx]
movzx eax, dx
test ax, ax
je 0x42c200
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x18]
movzx eax, ax
movzx esi, word [ecx + eax*2]
movzx ecx, word [edx]
mov eax, ecx
and eax, 0xf800
imul eax, dword [esp + 0x2b4]
shr eax, 8
mov edx, esi
and eax, 0xf800
and edx, 0xf800
add eax, edx
cmp eax, 0xf800
jbe 0x42c1a5
mov eax, 0xf800
mov edx, ecx
and edx, 0x7e0
imul edx, dword [esp + 0x2b4]
shr edx, 8
mov edi, esi
and edx, 0x7e0
and edi, 0x7e0
add edx, edi
cmp edx, 0x7e0
jbe 0x42c1d5
mov edx, 0x7e0
and ecx, 0x1f
imul ecx, dword [esp + 0x2b4]
shr ecx, 8
and ecx, 0x1f
and esi, 0x1f
add ecx, esi
cmp ecx, 0x1f
jbe 0x42c1f5
mov ecx, 0x1f
or eax, edx
or eax, ecx
mov ecx, dword [esp + 0x18]
mov word [ecx], ax
add ebx, dword [esp + 0x44]
add ebp, dword [esp + 0x3c]
sub dword [esp + 0x18], 2
sub dword [esp + 0x20], 1
jne 0x42c13b
mov eax, dword [esp + 0x34]
cmp eax, dword [esp + 0x74]
jge 0x42c22c
mov edx, dword [esp + 0x38]
sub dword [esp + 0x30], edx
jmp 0x42c234
mov ecx, dword [esp + 0x40]
add dword [esp + 0x30], ecx
cmp eax, dword [esp + 0x68]
jge 0x42c244
mov edx, dword [esp + 0x40]
add dword [esp + 0x24], edx
jmp 0x42c24c
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x24], ecx
add dword [esp + 0x2c], 4
inc eax
cmp eax, dword [esp + 0x54]
mov dword [esp + 0x34], eax
jle 0x42bff5
fstp st(3)
fstp st(0)
fstp st(1)
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x278
ret
pop edi
fstp st(0)
pop esi
fstp st(0)
pop ebp
pop ebx
add esp, 0x278
ret