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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff38
mov esi, ecx
lea edi, [esp + 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 4], edx
mov dword [esp], eax
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x78]
je 0x601fa2
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x7c]
je 0x601fa2
lea eax, [esp + 0x78]
call fcn.00601760
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x78]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
mov eax, dword [esp]
call fcn.0060171c
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x458]
cmp eax, dword [esp + 0x4c]
jne 0x601814
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x45c]
cmp eax, dword [esp + 0x50]
jne 0x601814
xor eax, eax
jmp 0x601816
mov al, 1
mov byte [esp + 0x54], al
cmp byte [esp + 0x54], 0
je 0x601866
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0xb8], eax
fild qword [esp + 0xb4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x458]
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xc0], eax
fild qword [esp + 0xbc]
fdivp st(1)
fstp qword [esp + 0x58]
wait
jmp 0x601874
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0x3ff00000
cmp byte [esp + 0x54], 0
je 0x6018c0
mov eax, dword [esp + 0x50]
mov dword [esp + 0xb4], eax
xor eax, eax
mov dword [esp + 0xb8], eax
fild qword [esp + 0xb4]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x45c]
mov dword [esp + 0xbc], eax
xor eax, eax
mov dword [esp + 0xc0], eax
fild qword [esp + 0xbc]
fdivp st(1)
fstp qword [esp + 0x60]
wait
jmp 0x6018ce
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0x3ff00000
lea eax, [esp + 0x88]
xor ecx, ecx
mov edx, 0x2c
call fcn.00403cd4
mov eax, dword [esp + 0x4c]
mov dword [0x65fb7c], eax
mov eax, dword [esp + 0x50]
neg eax
mov dword [0x65fb80], eax
mov esi, 0x65fb78
lea edi, [esp + 0x88]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
push 0
call sub.gdi32.dll_CreateCompatibleDC
mov dword [esp + 8], eax
push 0
push 0
lea eax, [esp + 0x14]
push eax
push 0
lea eax, [esp + 0x98]
push eax
mov eax, dword [esp + 0x1c]
push eax
call sub.gdi32.dll_CreateDIBSection
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 0
je 0x601942
cmp dword [esp + 0xc], 0
jne 0x60195d
cmp dword [esp + 0x14], 0
je 0x601953
mov eax, dword [esp + 0x14]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [esp + 8]
push eax
call sub.gdi32.dll_DeleteDC
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0xc]
push eax
call sub.gdi32.dll_SelectObject
mov dword [esp + 0x10], eax
push 0xcc0020
mov eax, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x60]
push eax
push 0
push 0
mov eax, dword [esp + 0x28]
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x458]
mov dword [esp + 0x38], eax
movzx eax, word [esp + 0x96]
imul dword [esp + 0x4c]
add eax, 0x1f
and eax, 0xffffffe0
shr eax, 3
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0x2f]
mov edx, dword [esp + 0x18]
imul dword [edx + 0x458]
add eax, 0x1f
and eax, 0xffffffe0
shr eax, 3
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x454]
mov eax, dword [esp + 0x18]
mov esi, dword [eax + 0x468]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x45c]
dec eax
imul esi, eax
mov eax, dword [esp + 0x18]
add esi, dword [eax + 0x450]
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0x2f]
dec ax
je 0x601be1
sub ax, 3
je 0x601be1
sub ax, 4
je 0x601be1
sub ax, 0x10
jne 0x601f4d
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x601f4d
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 1
mov esi, dword [esp + 0x4c]
dec esi
test esi, esi
jl 0x601b86
inc esi
xor edi, edi
cmp byte [esp + 0x54], 0
je 0x601a9f
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x58]
call fcn.00403644
jmp 0x601aa1
mov eax, edi
cmp byte [ebx + eax], 0
je 0x601b7e
cmp byte [ebx + eax], 0xff
jne 0x601ac9
lea eax, [eax + eax*2]
mov edx, dword [esp + 0x3c]
lea eax, [edx + eax]
mov eax, dword [eax]
mov edx, dword [esp + 0x44]
mov dword [edx + edi*4], eax
jmp 0x601b7e
mov edx, dword [esp + 0x44]
lea edx, [edx + edi*4]
mov dword [esp + 0x6c], edx
lea edx, [eax + eax*2]
add edx, 2
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx + edx]
movzx ecx, byte [ebx + eax]
imul edx, ecx
add edx, 0xff
movzx ecx, byte [ebx + eax]
not cl
movzx ecx, cl
mov ebp, dword [esp + 0x6c]
movzx ebp, byte [ebp + 2]
imul ecx, ebp
add edx, ecx
shr edx, 8
mov ecx, dword [esp + 0x6c]
mov byte [ecx + 2], dl
lea edx, [eax + eax*2]
inc edx
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx + edx]
movzx ecx, byte [ebx + eax]
imul edx, ecx
add edx, 0xff
movzx ecx, byte [ebx + eax]
not cl
movzx ecx, cl
mov ebp, dword [esp + 0x6c]
movzx ebp, byte [ebp + 1]
imul ecx, ebp
add edx, ecx
shr edx, 8
mov ecx, dword [esp + 0x6c]
mov byte [ecx + 1], dl
lea edx, [eax + eax*2]
mov ecx, dword [esp + 0x3c]
movzx edx, byte [ecx + edx]
movzx ecx, byte [ebx + eax]
imul edx, ecx
add edx, 0xff
movzx eax, byte [ebx + eax]
not al
movzx eax, al
mov ecx, dword [esp + 0x6c]
movzx ecx, byte [ecx]
imul eax, ecx
add edx, eax
shr edx, 8
mov eax, dword [esp + 0x6c]
mov byte [eax], dl
inc edi
dec esi
jne 0x601a7f
mov eax, dword [esp + 0x30]
add dword [esp + 0x44], eax
cmp byte [esp + 0x54], 0
je 0x601ba4
fild dword [esp + 0x48]
fdiv qword [esp + 0x60]
call fcn.00403644
jmp 0x601ba8
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
imul edx, eax
mov ecx, dword [esp + 0x40]
sub ecx, edx
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x454]
mov edx, dword [esp + 0x38]
imul edx, eax
add esi, edx
mov ebx, esi
inc dword [esp + 0x48]
dec dword [esp + 0x68]
jne 0x601a6f
jmp 0x601f4d
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x461], 4
jne 0x601d58
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x601f4d
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 1
mov esi, dword [esp + 0x4c]
dec esi
test esi, esi
jl 0x601cfd
inc esi
xor edi, edi
mov eax, dword [esp + 0x44]
lea eax, [eax + edi*4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x18]
add eax, 0x21
mov dword [esp + 0x74], eax
cmp byte [esp + 0x54], 0
je 0x601c50
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x58]
call fcn.00403644
jmp 0x601c52
mov eax, edi
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + eax]
movzx ecx, byte [ebx + eax]
imul edx, ecx
add edx, 0xff
movzx ecx, byte [ebx + eax]
mov ebp, 0xff
sub ebp, ecx
mov ecx, dword [esp + 0x70]
movzx ecx, byte [ecx + 2]
imul ebp, ecx
add edx, ebp
shr edx, 8
mov ecx, dword [esp + 0x70]
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + eax]
movzx ecx, byte [ebx + eax]
imul edx, ecx
add edx, 0xff
movzx ecx, byte [ebx + eax]
mov ebp, 0xff
sub ebp, ecx
mov ecx, dword [esp + 0x70]
movzx ecx, byte [ecx + 1]
imul ebp, ecx
add edx, ebp
shr edx, 8
mov ecx, dword [esp + 0x70]
mov byte [ecx + 1], dl
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + eax]
movzx ecx, byte [ebx + eax]
imul edx, ecx
add edx, 0xff
movzx eax, byte [ebx + eax]
mov ecx, 0xff
sub ecx, eax
mov eax, dword [esp + 0x70]
movzx eax, byte [eax]
imul ecx, eax
add edx, ecx
shr edx, 8
mov eax, dword [esp + 0x70]
mov byte [eax], dl
inc edi
dec esi
jne 0x601c1a
mov eax, dword [esp + 0x30]
add dword [esp + 0x44], eax
cmp byte [esp + 0x54], 0
je 0x601d1b
fild dword [esp + 0x48]
fdiv qword [esp + 0x60]
call fcn.00403644
jmp 0x601d1f
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
imul edx, eax
mov ecx, dword [esp + 0x40]
sub ecx, edx
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x18]
mov esi, dword [edx + 0x454]
mov edx, dword [esp + 0x38]
imul edx, eax
add esi, edx
mov ebx, esi
inc dword [esp + 0x48]
dec dword [esp + 0x68]
jne 0x601c0a
jmp 0x601f4d
mov eax, dword [esp]
mov eax, dword [eax + 0x30]
mov edx, dword [0x5fcb6c]
call fcn.005fda34
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x30]
mov edx, dword [0x5fcafc]
call fcn.005fda34
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x601f4d
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 1
xor edi, edi
xor eax, eax
mov dword [esp + 0x28], eax
cmp byte [esp + 0x54], 0
je 0x601dc2
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x58]
call fcn.00403644
jmp 0x601dc4
mov eax, edi
mov edx, dword [esp + 0x3c]
lea eax, [edx + eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + 0x460]
dec al
je 0x601de8
dec al
je 0x601e0e
sub al, 2
je 0x601e0e
jmp 0x601e3a
mov eax, edi
and eax, 0x80000007
jns 0x601df6
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
shr eax, cl
and al, 1
mov byte [esp + 0x24], al
jmp 0x601e45
mov eax, edi
and eax, 0x80000001
jns 0x601e1c
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
add ecx, ecx
add ecx, ecx
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
shr eax, cl
and al, 0xf
mov byte [esp + 0x24], al
jmp 0x601e45
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
mov byte [esp + 0x24], al
mov eax, dword [esp + 0x44]
lea esi, [eax + edi*4]
movzx eax, byte [esp + 0x24]
mov edx, dword [esp + 0x1c]
movzx ebx, byte [edx + eax + 0x15]
movzx edx, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.00600ea4
shr eax, 0x10
movzx eax, al
movzx edx, bl
imul edx
add eax, 0xff
movzx edx, bl
mov ebp, 0xff
sub ebp, edx
mov edx, ebp
movzx ecx, byte [esi + 2]
imul edx, ecx
add eax, edx
shr eax, 8
mov byte [esi + 2], al
movzx edx, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.00600ea4
shr eax, 8
movzx eax, al
movzx edx, bl
imul edx
add eax, 0xff
mov edx, ebp
movzx ecx, byte [esi + 1]
imul edx, ecx
add eax, edx
shr eax, 8
mov byte [esi + 1], al
movzx edx, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.00600ea4
movzx eax, al
movzx edx, bl
imul edx
add eax, 0xff
movzx edx, byte [esi]
imul ebp, edx
add eax, ebp
shr eax, 8
mov byte [esi], al
inc edi
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 0x2f]
add dword [esp + 0x28], eax
cmp dword [esp + 0x28], 8
jl 0x601dcf
cmp edi, dword [esp + 0x4c]
jl 0x601d9c
mov eax, dword [esp + 0x30]
add dword [esp + 0x44], eax
cmp byte [esp + 0x54], 0
je 0x601f2a
fild dword [esp + 0x48]
fdiv qword [esp + 0x60]
call fcn.00403644
jmp 0x601f2e
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x34]
imul edx, eax
mov eax, dword [esp + 0x40]
sub eax, edx
mov dword [esp + 0x3c], eax
inc dword [esp + 0x48]
dec dword [esp + 0x68]
jne 0x601d9a
push 0xcc0020
push 0
push 0
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x60]
push eax
mov eax, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x24]
push eax
call sub.gdi32.dll_BitBlt
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [esp + 0xc]
push eax
call sub.gdi32.dll_SelectObject
mov eax, dword [esp + 0x14]
push eax
call sub.gdi32.dll_DeleteObject
mov eax, dword [esp + 8]
push eax
call sub.gdi32.dll_DeleteDC
add esp, 0xc8
pop ebp
pop edi
pop esi
pop ebx
ret