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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xfc
call sym.allegro_5.0.10_monolith_mt.dll_al_get_target_bitmap
mov dword [esp + 0x80], eax
lea eax, [esp + 0xd4]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xd0]
mov dword [esp + 8], eax
lea eax, [esp + 0xcc]
mov dword [esp + 4], eax
lea eax, [esp + 0xc8]
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll_al_get_clipping_rectangle
mov edi, dword [esp + 0xc8]
mov ebx, dword [esp + 0xd0]
add ebx, edi
mov dword [esp + 0xd0], ebx
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0xd4]
add esi, ebp
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0x110]
fld dword [ecx]
mov ecx, dword [esp + 0x114]
fld dword [ecx]
fst dword [esp + 0x64]
mov ecx, dword [esp + 0x118]
fld dword [ecx]
fucom st(1)
fnstsw ax
fstp st(1)
mov edx, eax
test ah, 0x45
jne 0x64657424
fld dword [esp + 0x64]
fucomp st(2)
fnstsw ax
fld st(1)
test ah, 0x45
jne 0x6465743c
nop
fstp dword [esp]
fstp dword [esp + 0x30]
fstp dword [esp + 0x50]
call fcn.647cc210
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov eax, dword [esp + 0xb8]
dec eax
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x110]
fld dword [ecx + 4]
mov ecx, dword [esp + 0x114]
fld dword [ecx + 4]
fstp dword [esp + 0x68]
mov ecx, dword [esp + 0x118]
fld dword [ecx + 4]
fld dword [esp + 0x68]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
mov edx, eax
test ah, 0x45
fld dword [esp + 0x30]
fld dword [esp + 0x50]
jne 0x6465744c
fld dword [esp + 0x68]
fucomp st(4)
fnstsw ax
fld st(3)
test ah, 0x45
jne 0x64657462
fxch st(1)
fxch st(3)
fxch st(1)
fstp dword [esp]
fstp dword [esp + 0x20]
fstp dword [esp + 0x30]
fxch st(1)
fstp dword [esp + 0x40]
fstp dword [esp + 0x50]
call fcn.647cc210
fstp dword [esp + 0x7c]
fld dword [esp + 0x30]
fld dword [esp + 0x64]
fucomp st(1)
fnstsw ax
mov edx, eax
test ah, 0x45
fld dword [esp + 0x20]
fld dword [esp + 0x40]
fld dword [esp + 0x50]
jne 0x64657474
fstp st(3)
fxch st(1)
fxch st(2)
fld dword [esp + 0x64]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
jne 0x64657492
jmp 0x6465736a
fstp st(3)
fxch st(1)
fxch st(2)
fstp dword [esp]
fxch st(1)
fstp dword [esp + 0x20]
fstp dword [esp + 0x40]
call fcn.647cc2d0
fstp dword [esp + 0x64]
fld dword [esp + 0x20]
fld dword [esp + 0x68]
fucomp st(1)
fnstsw ax
mov edx, eax
test ah, 0x45
fld dword [esp + 0x40]
jne 0x646574a0
fstp st(1)
fld dword [esp + 0x68]
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x45
jne 0x646574bc
jmp 0x646573b6
fstp st(1)
fstp dword [esp]
call fcn.647cc2d0
cmp ebx, dword [esp + 0x78]
jle 0x6465740c
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fld dword [esp + 0x7c]
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov eax, dword [esp + 0xb8]
dec eax
cmp esi, eax
jg 0x646574dc
fstp st(0)
jmp 0x64657418
fstp st(0)
jmp 0x64657418
fstp st(0)
jmp 0x64657418
fstp st(0)
nop
add esp, 0xfc
pop ebx
pop esi
pop edi
pop ebp
ret
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x646574cc
and dh, 0x45
jne 0x64657cf0
jmp 0x64657440
fstp st(0)
nop
fld dword [esp + 0x64]
jmp 0x64657260
fxch st(2)
fucom st(3)
fnstsw ax
test ah, 0x45
je 0x646574d4
and dh, 0x45
jne 0x64657ce8
jmp 0x64657468
fstp st(0)
fxch st(2)
nop
fld dword [esp + 0x68]
jmp 0x64657304
fucom st(3)
fnstsw ax
test ah, 0x45
je 0x64657364
fstp st(0)
and dh, 0x45
jne 0x64657cf8
fstp st(2)
fxch st(1)
jmp 0x64657494
fstp st(0)
fld dword [esp + 0x64]
jmp 0x6465736a
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x646573b4
fstp st(0)
and dh, 0x45
jne 0x646573b6
fstp st(0)
jmp 0x646574c0
fstp st(0)
nop
fld dword [esp + 0x68]
jmp 0x646573b6
fld st(1)
jmp 0x64657260
fld st(3)
jmp 0x64657304
fld dword [esp + 0x64]
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov edx, dword [esp + 0xb8]
inc edx
cmp edx, ebx
jg 0x64657d04
cmp edi, edx
jg 0x64657410
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov ecx, dword [esp + 0xb8]
lea ebx, [ecx + 1]
cmp ebx, esi
jle 0x64657532
mov ebx, esi
cmp ebx, ebp
jl 0x64657418
cmp dword [esp + 0x78], edi
jl 0x64657d1c
mov esi, eax
cmp eax, ebp
jl 0x64657d14
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 0x60], edx
call sym.allegro_5.0.10_monolith_mt.dll_al_is_bitmap_locked
test al, al
mov edx, dword [esp + 0x60]
jne 0x64657d28
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov ecx, ebx
sub ecx, esi
mov dword [esp + 0x10], ecx
sub edx, dword [esp + 0x78]
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll_al_lock_bitmap_region
test eax, eax
je 0x64657418
mov dword [esp + 0xb0], 1
fld dword [0x647f81e0]
mov ecx, dword [esp + 0x110]
fld dword [ecx]
fsub st(1)
fstp dword [esp + 0xd8]
fld dword [ecx + 4]
fadd st(1)
fst dword [esp + 0x88]
fstp dword [esp + 0xdc]
mov ecx, dword [esp + 0x114]
fld dword [ecx]
fsub st(1)
fstp dword [esp + 0xe0]
fld dword [ecx + 4]
fadd st(1)
fst dword [esp + 0x68]
fstp dword [esp + 0xe4]
mov ecx, dword [esp + 0x118]
fld dword [ecx]
fsub st(1)
fstp dword [esp + 0xe8]
fadd dword [ecx + 4]
fst dword [esp + 0x90]
fstp dword [esp + 0xec]
fld dword [esp + 0x88]
fld dword [esp + 0x68]
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x64657dec
fstp dword [esp + 0x68]
fstp dword [esp + 0x88]
lea edi, [esp + 0xe0]
lea esi, [esp + 0xd8]
fld dword [esp + 0x68]
fld dword [esp + 0x90]
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x64657e04
fxch st(1)
fstp dword [esp + 0x68]
fstp dword [esp + 0x90]
mov ebx, esi
lea esi, [esp + 0xe8]
fld dword [esp + 0x88]
fld dword [esp + 0x68]
fxch st(1)
fucom st(1)
fnstsw ax
test ah, 0x45
je 0x646576b8
fstp dword [esp + 0x68]
fstp dword [esp + 0x88]
mov eax, esi
mov esi, edi
mov edi, eax
jmp 0x646576bc
fstp st(0)
fstp st(0)
fld dword [esp + 0x90]
fstp dword [esp]
call fcn.647cc2d0
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov ebp, dword [esp + 0xb8]
fld dword [esp + 0x68]
fstp dword [esp]
call fcn.647cc2d0
fstp dword [esp + 0x64]
fld dword [esp + 0x88]
fstp dword [esp]
call fcn.647cc2d0
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0x98]
fldcw word [esp + 0xbe]
cmp ebp, dword [esp + 0x98]
je 0x64657dc6
fld dword [esp + 0x64]
fldcw word [esp + 0xbc]
fistp dword [esp + 0x94]
fldcw word [esp + 0xbe]
fld dword [ebx]
fst dword [esp + 0xa4]
fstp dword [esp]
call fcn.647cc2d0
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov ebx, dword [esp + 0xb8]
fld dword [edi]
fst dword [esp + 0xac]
fsub dword [esp + 0xa4]
fstp dword [esp + 0x8c]
fld dword [esp + 0x88]
fsub dword [esp + 0x90]
fst dword [esp + 0x84]
fld dword [esi]
fst dword [esp + 0xa8]
fsub dword [esp + 0xa4]
fstp dword [esp + 0x7c]
fld dword [esp + 0x68]
fsub dword [esp + 0x90]
fst dword [esp + 0x78]
fld dword [esp + 0x8c]
fmulp st(1)
fld dword [esp + 0x7c]
fmulp st(2)
fsubrp st(1)
fldz
fucompp
fnstsw ax
xor ecx, ecx
test ah, 0x45
sete cl
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x110]
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
call dword [esp + 0x120]
cmp ebp, dword [esp + 0x94]
je 0x6465799f
fld dword [esp + 0xa4]
fstp dword [esp]
call fcn.647cc210
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov esi, dword [esp + 0xb8]
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x64657e14
fld dword [esp + 0x7c]
fstp dword [esp + 0x70]
fld dword [esp + 0x8c]
fstp dword [esp + 0x7c]
fld dword [esp + 0x78]
fstp dword [esp + 0x6c]
fld dword [esp + 0x84]
fstp dword [esp + 0x78]
fld dword [esp + 0x90]
push ebp
fisubr dword [esp]
fld dword [esp + 0x80]
fmul st(1)
fld dword [esp + 0xa8]
mov dword [esp], ebx
fisubr dword [esp]
fmul dword [esp + 0x7c]
fsubp st(1)
fxch st(1)
fmul dword [esp + 0x74]
fld dword [esp + 0xa8]
mov dword [esp], esi
fisubr dword [esp]
pop eax
fmul dword [esp + 0x6c]
fsubp st(1)
fld dword [esp + 0x78]
fdivr st(2)
fstp dword [esp]
fstp dword [esp + 0x20]
fstp dword [esp + 0x30]
call fcn.647cc2d0
fstp dword [esp + 0x64]
fld dword [esp + 0x20]
fld dword [esp + 0x6c]
fdivp st(1)
fsub dword [0x647f81f4]
fstp dword [esp]
call fcn.647cc210
fstp dword [esp + 0x74]
fld dword [esp + 0x7c]
fdiv dword [esp + 0x78]
fstp dword [esp]
call fcn.647cc2d0
fstp dword [esp + 0x9c]
fld dword [esp + 0x70]
fdiv dword [esp + 0x6c]
fstp dword [esp]
call fcn.647cc2d0
cmp ebp, dword [esp + 0x94]
fld dword [esp + 0x20]
fld dword [esp + 0x30]
jl 0x64657efb
fstp st(0)
fstp st(0)
fstp st(0)
cmp dword [esp + 0x98], ebp
jle 0x64657dc6
fld dword [esp + 0xa8]
mov eax, dword [esp + 0xb4]
test eax, eax
fstp dword [esp]
je 0x64657e2f
call fcn.647cc2d0
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov esi, dword [esp + 0xb8]
fld dword [esp + 0xac]
fsub dword [esp + 0xa8]
fstp dword [esp + 0x70]
fld dword [esp + 0x88]
fsub dword [esp + 0x68]
fst dword [esp + 0x6c]
mov dword [esp + 0xb8], ebp
fild dword [esp + 0xb8]
fld dword [esp + 0x90]
fsubr st(1)
fmul dword [esp + 0x8c]
fld dword [esp + 0xa4]
push ebx
fisubr dword [esp]
fmul dword [esp + 0x88]
fsubp st(1)
fxch st(1)
fsub dword [esp + 0x6c]
fmul dword [esp + 0x74]
fld dword [esp + 0xac]
mov dword [esp], esi
fisubr dword [esp]
pop eax
fmulp st(3)
fsubrp st(2)
fld dword [esp + 0x84]
fdivr st(1)
fstp dword [esp]
fstp dword [esp + 0x20]
fstp dword [esp + 0x30]
call fcn.647cc2d0
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0x64]
fldcw word [esp + 0xbe]
fld dword [esp + 0x30]
fld dword [esp + 0x6c]
fdivp st(1)
fsub dword [0x647f81f4]
fstp dword [esp]
call fcn.647cc210
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0x68]
fldcw word [esp + 0xbe]
fld dword [esp + 0x8c]
fdiv dword [esp + 0x84]
fstp dword [esp]
call fcn.647cc2d0
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov edi, dword [esp + 0xb8]
fld dword [esp + 0x70]
fdiv dword [esp + 0x6c]
fstp dword [esp]
call fcn.647cc2d0
fstp dword [esp + 0x74]
add ebx, dword [esp + 0x64]
add esi, dword [esp + 0x68]
lea eax, [edi - 1]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov ecx, dword [esp + 0x124]
call ecx
cmp ebx, esi
fld dword [esp + 0x20]
fld dword [esp + 0x30]
jle 0x6465818b
inc ebp
fld dword [esp + 0x84]
fimul dword [esp + 0x64]
fsubp st(2)
fxch st(1)
fadd dword [esp + 0x8c]
fld dword [esp + 0x6c]
fimul dword [esp + 0x68]
fsubp st(2)
fld dword [esp + 0x70]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x64]
cmp dword [esp + 0x98], ebp
jle 0x64657dbf
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fld dword [esp + 0x74]
fldcw word [esp + 0xbc]
fistp dword [esp + 0x78]
fldcw word [esp + 0xbe]
mov dword [esp + 0xb8], edi
fild dword [esp + 0xb8]
fchs
fld dword [esp + 0x84]
fmulp st(1)
fstp dword [esp + 0x68]
fild dword [esp + 0x78]
fchs
fstp dword [esp + 0x74]
jmp 0x64657c45
fxch st(1)
inc ebp
fadd dword [esp + 0x8c]
fxch st(1)
fadd dword [esp + 0x70]
fstp dword [esp + 0x64]
cmp ebp, dword [esp + 0x98]
je 0x64657dc4
fadd dword [esp + 0x68]
add ebx, edi
fld dword [esp + 0x84]
fadd st(1)
fldz
fucomp st(1)
fnstsw ax
test ah, 5
je 0x64657d94
fstp st(0)
mov dword [esp + 4], 1
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x128]
call ecx
fld dword [esp + 0x20]
fld dword [esp + 0x6c]
fmul dword [esp + 0x74]
fadd dword [esp + 0x64]
add esi, dword [esp + 0x78]
fldz
fucomp st(1)
fnstsw ax
test ah, 5
je 0x64657d88
cmp esi, ebx
jl 0x64657c24
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x50]
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x12c]
call ecx
fld dword [esp + 0x20]
fld dword [esp + 0x50]
fxch st(1)
jmp 0x64657c26
fld st(0)
jmp 0x64657304
fld st(0)
jmp 0x64657260
fxch st(1)
fxch st(2)
jmp 0x6465736a
mov edx, ebx
cmp edi, edx
jg 0x64657414
jmp 0x6465750d
mov esi, ebp
jmp 0x6465754e
mov dword [esp + 0x78], edi
jmp 0x64657544
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll_al_is_bitmap_locked
test al, al
mov edx, dword [esp + 0x60]
je 0x64657418
mov ecx, dword [esp + 0x80]
mov eax, dword [ecx + 0x30]
cmp eax, edx
jge 0x64657418
mov edx, dword [ecx + 0x34]
cmp ebx, edx
jle 0x64657418
add eax, dword [ecx + 0x38]
cmp dword [esp + 0x78], eax
jge 0x64657418
add edx, dword [ecx + 0x3c]
cmp esi, edx
jge 0x64657418
mov dword [esp + 0xb0], 0
jmp 0x646575bb
fadd dword [esp + 0x6c]
dec esi
jmp 0x64657ca7
fstp st(1)
dec ebx
mov dword [esp + 4], 0
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x50]
mov ecx, dword [esp + 0x128]
call ecx
fld dword [esp + 0x50]
jmp 0x64657c88
fstp st(0)
jmp 0x64657dc6
fstp st(0)
mov ecx, dword [esp + 0xb0]
test ecx, ecx
je 0x64657418
mov eax, dword [esp + 0x80]
mov dword [esp], eax
call sym.allegro_5.0.10_monolith_mt.dll_al_unlock_bitmap
jmp 0x64657418
fstp st(0)
fstp st(0)
lea edi, [esp + 0xd8]
lea esi, [esp + 0xe0]
jmp 0x6465765e
fstp st(0)
fstp st(0)
lea ebx, [esp + 0xe8]
jmp 0x6465768e
fld dword [esp + 0x8c]
fstp dword [esp + 0x70]
fld dword [esp + 0x84]
fstp dword [esp + 0x6c]
jmp 0x646578e6
call fcn.647cc210
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov esi, dword [esp + 0xb8]
fld dword [esp + 0xac]
fsub dword [esp + 0xa8]
fld dword [esp + 0x88]
fsub dword [esp + 0x68]
mov dword [esp + 0xb8], ebp
fild dword [esp + 0xb8]
fld dword [esp + 0x68]
fsubr st(1)
fmul st(3)
fld dword [esp + 0xa8]
push ebx
fisubr dword [esp]
fmul st(3)
fsubp st(1)
fxch st(1)
fsub dword [esp + 0x94]
fmul dword [esp + 0x90]
fld dword [esp + 0xa8]
mov dword [esp], esi
fisubr dword [esp]
pop edi
fmul dword [esp + 0x84]
fsubp st(1)
fld dword [esp + 0x8c]
fstp dword [esp + 0x70]
fxch st(3)
fstp dword [esp + 0x8c]
fld dword [esp + 0x84]
fstp dword [esp + 0x6c]
fxch st(1)
fstp dword [esp + 0x84]
jmp 0x64657a6e
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fld dword [esp + 0x64]
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov edx, dword [esp + 0xb8]
fld dword [esp + 0x74]
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov eax, dword [esp + 0xb8]
fld dword [esp + 0x9c]
fldcw word [esp + 0xbc]
fistp dword [esp + 0x9c]
fldcw word [esp + 0xbe]
add ebx, edx
fld dword [esp + 0x78]
push edx
fimul dword [esp]
fsubp st(1)
fstp dword [esp + 0x78]
add esi, eax
fld dword [esp + 0x70]
mov dword [esp], eax
fimul dword [esp]
pop eax
fsubp st(1)
fstp dword [esp + 0x64]
mov eax, dword [esp + 0x9c]
dec eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x50]
mov ecx, dword [esp + 0x124]
call ecx
cmp ebx, esi
fld dword [esp + 0x50]
jle 0x64658161
lea edi, [ebp + 1]
fld dword [esp + 0x7c]
fadd dword [esp + 0x74]
fld dword [esp + 0x70]
fadd dword [esp + 0x64]
fstp dword [esp + 0x64]
cmp dword [esp + 0x94], edi
jle 0x6465814f
fxch st(1)
fnstcw word [esp + 0xbe]
mov ax, word [esp + 0xbe]
mov ah, 0xc
mov word [esp + 0xbc], ax
fldcw word [esp + 0xbc]
fistp dword [esp + 0xb8]
fldcw word [esp + 0xbe]
mov ebp, dword [esp + 0xb8]
fild dword [esp + 0x9c]
fchs
fld dword [esp + 0x78]
fmulp st(1)
fstp dword [esp + 0x74]
mov dword [esp + 0xb8], ebp
fild dword [esp + 0xb8]
fchs
fstp dword [esp + 0xa0]
jmp 0x6465807a
fxch st(1)
inc edi
fadd dword [esp + 0x7c]
fxch st(1)
fadd dword [esp + 0x70]
fstp dword [esp + 0x64]
cmp edi, dword [esp + 0x94]
je 0x64658158
fadd dword [esp + 0x74]
add ebx, dword [esp + 0x9c]
fld dword [esp + 0x78]
fadd st(1)
fldz
fucomp st(1)
fnstsw ax
test ah, 5
je 0x64658124
fstp st(0)
mov dword [esp + 4], 1
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x128]
call ecx
fld dword [esp + 0x20]
fld dword [esp + 0x6c]
fmul dword [esp + 0xa0]
fadd dword [esp + 0x64]
add esi, ebp
fldz
fucomp st(1)
fnstsw ax
test ah, 5
je 0x6465811c
cmp esi, ebx
jl 0x6465805c
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x50]
fstp dword [esp + 0x20]
mov ecx, dword [esp + 0x12c]
call ecx
fld dword [esp + 0x20]
fld dword [esp + 0x50]
fxch st(1)
jmp 0x6465805e
fadd dword [esp + 0x6c]
dec esi
jmp 0x646580db
fstp st(1)
dec ebx
mov dword [esp + 4], 0
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
fstp dword [esp + 0x50]
mov ecx, dword [esp + 0x128]
call ecx
fld dword [esp + 0x50]
jmp 0x646580bf
fstp st(0)
fstp st(0)
jmp 0x6465815a
fstp st(0)
mov ebp, edi
jmp 0x6465799f
fstp st(0)
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov ecx, dword [esp + 0x12c]
call ecx
fld dword [esp + 0x50]
jmp 0x64657fd5
fstp st(0)
fstp st(0)
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebp
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov ecx, dword [esp + 0x12c]
call ecx
fld dword [esp + 0x30]
fld dword [esp + 0x20]
fxch st(1)
jmp 0x64657b92