Function at 0x4725f0
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 0x472e72
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x7c]
je 0x472e72
lea eax, [esp + 0x78]
call fcn.004725d0
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.0047258c
mov ebp, eax
mov eax, dword [ebp + 0x458]
cmp eax, dword [esp + 0x4c]
jne 0x47267a
mov eax, dword [ebp + 0x45c]
cmp eax, dword [esp + 0x50]
jne 0x47267a
xor eax, eax
jmp 0x47267c
mov al, 1
mov byte [esp + 0x54], al
cmp byte [esp + 0x54], 0
je 0x4726c8
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 [ebp + 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 0x4726d6
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0x3ff00000
cmp byte [esp + 0x54], 0
je 0x47271e
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 [ebp + 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 0x47272c
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.00402f58
mov eax, dword [esp + 0x4c]
mov dword [0x490ff0], eax
mov eax, dword [esp + 0x50]
neg eax
mov dword [0x490ff4], eax
mov esi, 0x490fec
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 0x4727a0
cmp dword [esp + 0xc], 0
jne 0x4727bb
cmp dword [esp + 0x14], 0
je 0x4727b1
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 [ebp + 0x458]
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x96]
imul dword [esp + 0x4c]
add eax, 0x1f
and eax, 0xffffffe0
shr eax, 3
mov dword [esp + 0x2c], eax
movzx eax, word [ebp + 0x2f]
imul dword [ebp + 0x458]
add eax, 0x1f
and eax, 0xffffffe0
shr eax, 3
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x454]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x468]
mov edx, dword [ebp + 0x45c]
dec edx
imul edx
add eax, dword [ebp + 0x450]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov ax, word [ebp + 0x2f]
dec ax
je 0x472a95
sub ax, 3
je 0x472a95
sub ax, 4
je 0x472a95
sub ax, 0x10
jne 0x472e1d
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x472e1d
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 1
mov esi, dword [esp + 0x4c]
dec esi
test esi, esi
jl 0x472a3c
inc esi
xor edi, edi
cmp byte [esp + 0x54], 0
je 0x4728e2
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x58]
call fcn.00402d5c
mov ebx, eax
jmp 0x4728e4
mov ebx, edi
mov eax, dword [esp + 0x40]
cmp byte [eax + ebx], 0
je 0x472a34
mov eax, dword [esp + 0x40]
cmp byte [eax + ebx], 0xff
jne 0x472927
mov eax, dword [esp + 0x44]
lea eax, [eax + edi*4]
lea edx, [ebx + ebx*2]
mov ecx, dword [esp + 0x38]
lea edx, [ecx + edx]
mov cx, word [edx]
mov word [eax], cx
mov cl, byte [edx + 2]
mov byte [eax + 2], cl
mov eax, dword [esp + 0x44]
mov byte [eax + edi*4 + 3], 0xff
jmp 0x472a34
mov eax, dword [esp + 0x44]
lea eax, [eax + edi*4]
mov dword [esp + 0x6c], eax
lea eax, [ebx + ebx*2]
add eax, 2
mov edx, dword [esp + 0x38]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
imul edx
add eax, 0x7f
mov edx, dword [esp + 0x40]
mov dl, byte [edx + ebx]
not dl
and edx, 0xff
mov ecx, dword [esp + 0x6c]
movzx ecx, byte [ecx + 2]
imul edx, ecx
add eax, edx
mov ecx, 0xff
xor edx, edx
div ecx
mov edx, dword [esp + 0x6c]
mov byte [edx + 2], al
lea eax, [ebx + ebx*2]
inc eax
mov edx, dword [esp + 0x38]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
imul edx
add eax, 0x7f
mov edx, dword [esp + 0x40]
mov dl, byte [edx + ebx]
not dl
and edx, 0xff
mov ecx, dword [esp + 0x6c]
movzx ecx, byte [ecx + 1]
imul edx, ecx
add eax, edx
mov ecx, 0xff
xor edx, edx
div ecx
mov edx, dword [esp + 0x6c]
mov byte [edx + 1], al
lea eax, [ebx + ebx*2]
mov edx, dword [esp + 0x38]
movzx eax, byte [edx + eax]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
imul edx
add eax, 0x7f
mov edx, dword [esp + 0x40]
mov dl, byte [edx + ebx]
not dl
and edx, 0xff
mov ecx, dword [esp + 0x6c]
movzx ecx, byte [ecx]
imul edx, ecx
add eax, edx
mov ecx, 0xff
xor edx, edx
div ecx
mov edx, dword [esp + 0x6c]
mov byte [edx], al
mov eax, dword [esp + 0x40]
mov al, byte [eax + ebx]
not al
and eax, 0xff
mov edx, dword [esp + 0x6c]
mov dl, byte [edx + 3]
not dl
and edx, 0xff
imul edx
add eax, 0x7f
mov ecx, 0xff
xor edx, edx
div ecx
not al
mov edx, dword [esp + 0x6c]
mov byte [edx + 3], al
inc edi
dec esi
jne 0x4728c0
mov eax, dword [esp + 0x2c]
add dword [esp + 0x44], eax
cmp byte [esp + 0x54], 0
je 0x472a5a
fild dword [esp + 0x48]
fdiv qword [esp + 0x60]
call fcn.00402d5c
jmp 0x472a5e
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
imul edx, eax
mov ecx, dword [esp + 0x3c]
sub ecx, edx
mov dword [esp + 0x38], ecx
mov edx, dword [ebp + 0x454]
mov ecx, dword [esp + 0x34]
imul ecx, eax
add edx, ecx
mov dword [esp + 0x40], edx
inc dword [esp + 0x48]
dec dword [esp + 0x68]
jne 0x4728b0
jmp 0x472e1d
cmp byte [ebp + 0x461], 4
jne 0x472c16
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x472e1d
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 1
mov esi, dword [esp + 0x4c]
dec esi
test esi, esi
jl 0x472bbd
inc esi
xor edi, edi
mov eax, dword [esp + 0x44]
lea eax, [eax + edi*4]
mov dword [esp + 0x70], eax
lea eax, [ebp + 0x21]
mov dword [esp + 0x74], eax
cmp byte [esp + 0x54], 0
je 0x472afe
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x58]
call fcn.00402d5c
mov ebx, eax
jmp 0x472b00
mov ebx, edi
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebx]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
imul edx
add eax, 0xff
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
mov ecx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x70]
movzx edx, byte [edx + 2]
imul ecx, edx
add eax, ecx
shr eax, 8
mov edx, dword [esp + 0x70]
mov byte [edx + 2], al
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebx]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
imul edx
add eax, 0xff
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
mov ecx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x70]
movzx edx, byte [edx + 1]
imul ecx, edx
add eax, ecx
shr eax, 8
mov edx, dword [esp + 0x70]
mov byte [edx + 1], al
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + ebx]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
imul edx
add eax, 0xff
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ebx]
mov ecx, 0xff
sub ecx, edx
mov edx, dword [esp + 0x70]
movzx edx, byte [edx]
imul ecx, edx
add eax, ecx
shr eax, 8
mov edx, dword [esp + 0x70]
mov byte [edx], al
inc edi
dec esi
jne 0x472aca
mov eax, dword [esp + 0x2c]
add dword [esp + 0x44], eax
cmp byte [esp + 0x54], 0
je 0x472bdb
fild dword [esp + 0x48]
fdiv qword [esp + 0x60]
call fcn.00402d5c
jmp 0x472bdf
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
imul edx, eax
mov ecx, dword [esp + 0x3c]
sub ecx, edx
mov dword [esp + 0x38], ecx
mov edx, dword [ebp + 0x454]
mov ecx, dword [esp + 0x34]
imul ecx, eax
add edx, ecx
mov dword [esp + 0x40], edx
inc dword [esp + 0x48]
dec dword [esp + 0x68]
jne 0x472aba
jmp 0x472e1d
mov eax, dword [esp]
mov eax, dword [eax + 0x30]
mov edx, dword [0x46d8b0]
call fcn.0046e794
mov dword [esp + 0x18], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x30]
mov edx, dword [0x46d840]
call fcn.0046e794
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
test eax, eax
jle 0x472e1d
mov dword [esp + 0x68], eax
mov dword [esp + 0x48], 1
xor edi, edi
xor eax, eax
mov dword [esp + 0x24], eax
cmp byte [esp + 0x54], 0
je 0x472c82
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x58]
call fcn.00402d5c
mov ebx, eax
jmp 0x472c84
mov ebx, edi
mov eax, dword [esp + 0x38]
add eax, ebx
mov dword [esp + 0x28], eax
mov al, byte [ebp + 0x460]
dec al
je 0x472ca2
dec al
je 0x472cc8
sub al, 2
je 0x472cc8
jmp 0x472cf3
mov eax, edi
and eax, 0x80000007
jns 0x472cb0
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
sub ecx, eax
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
shr eax, cl
and al, 1
mov byte [esp + 0x20], al
jmp 0x472cfd
mov eax, edi
and eax, 0x80000001
jns 0x472cd6
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
shr eax, cl
and al, 0xf
mov byte [esp + 0x20], al
jmp 0x472cfd
mov eax, dword [esp + 0x28]
mov al, byte [eax]
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x44]
lea esi, [eax + edi*4]
xor eax, eax
mov al, byte [esp + 0x20]
mov edx, dword [esp + 0x18]
mov bl, byte [edx + eax + 0x15]
mov dl, byte [esp + 0x20]
mov eax, dword [esp + 0x1c]
call fcn.00471bdc
shr eax, 0x10
and eax, 0xff
xor edx, edx
mov dl, bl
imul edx
add eax, 0xff
xor edx, edx
mov dl, bl
mov ecx, 0xff
sub ecx, edx
xor edx, edx
mov dl, byte [esi + 2]
imul ecx, edx
add eax, ecx
shr eax, 8
mov byte [esi + 2], al
mov dl, byte [esp + 0x20]
mov eax, dword [esp + 0x1c]
call fcn.00471bdc
shr eax, 8
and eax, 0xff
xor edx, edx
mov dl, bl
imul edx
add eax, 0xff
xor edx, edx
mov dl, bl
mov ecx, 0xff
sub ecx, edx
xor edx, edx
mov dl, byte [esi + 1]
imul ecx, edx
add eax, ecx
shr eax, 8
mov byte [esi + 1], al
mov dl, byte [esp + 0x20]
mov eax, dword [esp + 0x1c]
call fcn.00471bdc
and eax, 0xff
xor edx, edx
mov dl, bl
imul edx
add eax, 0xff
xor edx, edx
mov dl, bl
mov ecx, 0xff
sub ecx, edx
xor edx, edx
mov dl, byte [esi]
imul ecx, edx
add eax, ecx
shr eax, 8
mov byte [esi], al
inc edi
movzx eax, word [ebp + 0x2f]
add dword [esp + 0x24], eax
cmp dword [esp + 0x24], 8
jl 0x472c8e
cmp edi, dword [esp + 0x4c]
jl 0x472c5a
mov eax, dword [esp + 0x2c]
add dword [esp + 0x44], eax
cmp byte [esp + 0x54], 0
je 0x472dfa
fild dword [esp + 0x48]
fdiv qword [esp + 0x60]
call fcn.00402d5c
jmp 0x472dfe
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x30]
imul edx, eax
mov eax, dword [esp + 0x3c]
sub eax, edx
mov dword [esp + 0x38], eax
inc dword [esp + 0x48]
dec dword [esp + 0x68]
jne 0x472c58
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