Function at 0x49c908
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 0x49d147
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x7c]
je 0x49d147
lea eax, [esp + 0x78]
call fcn.0049c8e8
mov eax, dword [esp + 0x80]
sub eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x7c]
mov dword [esp + 0x54], eax
mov eax, dword [esp]
call fcn.0049c8a4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x458]
cmp eax, dword [esp + 0x50]
jne 0x49c99c
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x45c]
cmp eax, dword [esp + 0x54]
jne 0x49c99c
xor eax, eax
jmp 0x49c99e
mov al, 1
mov byte [esp + 0x58], al
cmp byte [esp + 0x58], 0
je 0x49c9ee
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 + 0x458]
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 0x49c9fc
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0x3ff00000
cmp byte [esp + 0x58], 0
je 0x49ca48
mov eax, dword [esp + 0x54]
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 + 0x68]
wait
jmp 0x49ca56
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0x3ff00000
lea eax, [esp + 0x88]
xor ecx, ecx
mov edx, 0x2c
call fcn.00402d88
mov eax, dword [esp + 0x50]
mov dword [0x4b16d8], eax
mov eax, dword [esp + 0x54]
neg eax
mov dword [0x4b16dc], eax
mov esi, 0x4b16d4
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 0x49caca
cmp dword [esp + 0xc], 0
jne 0x49cae5
cmp dword [esp + 0x14], 0
je 0x49cadb
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 + 0x64]
push eax
mov eax, dword [esp + 0x64]
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 + 0x50]
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 + 0x48], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x454]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x468]
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x45c]
dec edx
imul edx
mov edx, dword [esp + 0x18]
add eax, dword [edx + 0x450]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov ax, word [eax + 0x2f]
dec ax
je 0x49cd7e
sub ax, 3
je 0x49cd7e
sub ax, 4
je 0x49cd7e
sub ax, 0x10
jne 0x49d0f2
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x49d0f2
mov dword [esp + 0x70], eax
mov dword [esp + 0x4c], 1
mov ebx, dword [esp + 0x50]
dec ebx
test ebx, ebx
jl 0x49cd21
inc ebx
xor edi, edi
cmp byte [esp + 0x58], 0
je 0x49cc2a
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x60]
call fcn.00402b50
jmp 0x49cc2c
mov eax, edi
mov edx, dword [esp + 0x44]
cmp byte [edx + eax], 0
je 0x49cd19
mov edx, dword [esp + 0x44]
cmp byte [edx + eax], 0xff
jne 0x49cc5c
lea eax, [eax + eax*2]
mov edx, dword [esp + 0x3c]
lea eax, [edx + eax]
mov eax, dword [eax]
mov edx, dword [esp + 0x48]
mov dword [edx + edi*4], eax
jmp 0x49cd19
mov edx, dword [esp + 0x48]
lea edx, [edx + edi*4]
lea ecx, [eax + eax*2]
add ecx, 2
mov esi, dword [esp + 0x3c]
movzx esi, byte [esi + ecx]
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
imul esi, ecx
add esi, 0xff
mov ecx, dword [esp + 0x44]
mov cl, byte [ecx + eax]
not cl
and ecx, 0xff
movzx ebp, byte [edx + 2]
imul ecx, ebp
add esi, ecx
mov ecx, esi
shr ecx, 8
mov byte [edx + 2], cl
lea ecx, [eax + eax*2]
inc ecx
mov esi, dword [esp + 0x3c]
movzx esi, byte [esi + ecx]
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
imul esi, ecx
add esi, 0xff
mov ecx, dword [esp + 0x44]
mov cl, byte [ecx + eax]
not cl
and ecx, 0xff
movzx ebp, byte [edx + 1]
imul ecx, ebp
add esi, ecx
mov ecx, esi
shr ecx, 8
mov byte [edx + 1], cl
lea ecx, [eax + eax*2]
mov esi, dword [esp + 0x3c]
movzx esi, byte [esi + ecx]
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
imul esi, ecx
add esi, 0xff
mov ecx, dword [esp + 0x44]
mov al, byte [ecx + eax]
not al
and eax, 0xff
xor ecx, ecx
mov cl, byte [edx]
imul eax, ecx
add esi, eax
mov eax, esi
shr eax, 8
mov byte [edx], al
inc edi
dec ebx
jne 0x49cc0a
mov eax, dword [esp + 0x30]
add dword [esp + 0x48], eax
cmp byte [esp + 0x58], 0
je 0x49cd3f
fild dword [esp + 0x4c]
fdiv qword [esp + 0x68]
call fcn.00402b50
jmp 0x49cd43
mov eax, dword [esp + 0x4c]
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 edx, dword [edx + 0x454]
mov ecx, dword [esp + 0x38]
imul ecx, eax
add edx, ecx
mov dword [esp + 0x44], edx
inc dword [esp + 0x4c]
dec dword [esp + 0x70]
jne 0x49cbfa
jmp 0x49d0f2
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x461], 4
jne 0x49cef6
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x49d0f2
mov dword [esp + 0x70], eax
mov dword [esp + 0x4c], 1
mov ebx, dword [esp + 0x50]
dec ebx
test ebx, ebx
jl 0x49ce99
inc ebx
xor edi, edi
mov eax, dword [esp + 0x48]
lea esi, [eax + edi*4]
mov eax, dword [esp + 0x18]
add eax, 0x21
mov dword [esp + 0x74], eax
cmp byte [esp + 0x58], 0
je 0x49cde9
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x60]
call fcn.00402b50
jmp 0x49cdeb
mov eax, edi
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + eax]
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
imul edx, ecx
add edx, 0xff
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
mov ebp, 0xff
sub ebp, ecx
xor ecx, ecx
mov cl, byte [esi + 2]
imul ebp, ecx
add edx, ebp
shr edx, 8
mov byte [esi + 2], dl
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + eax]
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
imul edx, ecx
add edx, 0xff
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
mov ebp, 0xff
sub ebp, ecx
xor ecx, ecx
mov cl, byte [esi + 1]
imul ebp, ecx
add edx, ebp
shr edx, 8
mov byte [esi + 1], dl
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx + eax]
mov ecx, dword [esp + 0x44]
movzx ecx, byte [ecx + eax]
imul edx, ecx
add edx, 0xff
mov ecx, dword [esp + 0x44]
movzx eax, byte [ecx + eax]
mov ecx, 0xff
sub ecx, eax
xor eax, eax
mov al, byte [esi]
imul ecx, eax
add edx, ecx
shr edx, 8
mov byte [esi], dl
inc edi
dec ebx
jne 0x49cdb7
mov eax, dword [esp + 0x30]
add dword [esp + 0x48], eax
cmp byte [esp + 0x58], 0
je 0x49ceb7
fild dword [esp + 0x4c]
fdiv qword [esp + 0x68]
call fcn.00402b50
jmp 0x49cebb
mov eax, dword [esp + 0x4c]
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 edx, dword [edx + 0x454]
mov ecx, dword [esp + 0x38]
imul ecx, eax
add edx, ecx
mov dword [esp + 0x44], edx
inc dword [esp + 0x4c]
dec dword [esp + 0x70]
jne 0x49cda7
jmp 0x49d0f2
mov eax, dword [esp]
mov eax, dword [eax + 0x30]
mov edx, dword [0x498098]
call fcn.00498d18
mov dword [esp + 0x1c], eax
mov eax, dword [esp]
mov eax, dword [eax + 0x30]
mov edx, dword [0x498028]
call fcn.00498d18
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
test eax, eax
jle 0x49d0f2
mov dword [esp + 0x70], eax
mov dword [esp + 0x4c], 1
xor edi, edi
xor eax, eax
mov dword [esp + 0x28], eax
cmp byte [esp + 0x58], 0
je 0x49cf60
mov dword [esp + 0xc4], edi
fild dword [esp + 0xc4]
fdiv qword [esp + 0x60]
call fcn.00402b50
jmp 0x49cf62
mov eax, edi
mov edx, dword [esp + 0x3c]
lea eax, [edx + eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x460]
dec al
je 0x49cf85
dec al
je 0x49cfab
sub al, 2
je 0x49cfab
jmp 0x49cfd6
mov eax, edi
and eax, 0x80000007
jns 0x49cf93
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 0x49cfe0
mov eax, edi
and eax, 0x80000001
jns 0x49cfb9
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 1
sub edx, eax
mov ecx, edx
shl ecx, 2
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax]
shr eax, cl
and al, 0xf
mov byte [esp + 0x24], al
jmp 0x49cfe0
mov eax, dword [esp + 0x2c]
mov al, byte [eax]
mov byte [esp + 0x24], al
mov eax, dword [esp + 0x48]
lea esi, [eax + edi*4]
xor eax, eax
mov al, byte [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov bl, byte [edx + eax + 0x15]
mov dl, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.0049c124
shr eax, 0x10
and eax, 0xff
xor edx, edx
mov dl, bl
imul edx
add eax, 0xff
xor edx, edx
mov dl, bl
mov ebp, 0xff
sub ebp, edx
mov edx, ebp
xor ecx, ecx
mov cl, byte [esi + 2]
imul edx, ecx
add eax, edx
shr eax, 8
mov byte [esi + 2], al
mov dl, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.0049c124
shr eax, 8
and eax, 0xff
xor edx, edx
mov dl, bl
imul edx
add eax, 0xff
mov edx, ebp
xor ecx, ecx
mov cl, byte [esi + 1]
imul edx, ecx
add eax, edx
shr eax, 8
mov byte [esi + 1], al
mov dl, byte [esp + 0x24]
mov eax, dword [esp + 0x20]
call fcn.0049c124
and eax, 0xff
xor edx, edx
mov dl, bl
imul edx
add eax, 0xff
xor edx, edx
mov dl, 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 0x49cf6d
cmp edi, dword [esp + 0x50]
jl 0x49cf3a
mov eax, dword [esp + 0x30]
add dword [esp + 0x48], eax
cmp byte [esp + 0x58], 0
je 0x49d0cf
fild dword [esp + 0x4c]
fdiv qword [esp + 0x68]
call fcn.00402b50
jmp 0x49d0d3
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
imul edx, eax
mov eax, dword [esp + 0x40]
sub eax, edx
mov dword [esp + 0x3c], eax
inc dword [esp + 0x4c]
dec dword [esp + 0x70]
jne 0x49cf38
push 0xcc0020
push 0
push 0
mov eax, dword [esp + 0x14]
push eax
mov eax, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x64]
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