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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff90
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x18]
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 [ebp - 4], eax
mov eax, dword [ebp - 4]
add eax, 0x2c
push eax
mov eax, dword [ebp - 4]
add eax, 0x1c
push eax
mov eax, dword [ebp - 4]
add eax, 0x24
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 4]
lea ecx, [eax + 0xc]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x3c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
call fcn.0050881c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x14]
test al, al
je 0x51b6c8
lea eax, [ebp - 0x60]
call fcn.0054b588
lea edx, [ebp - 0x60]
mov eax, dword [ebp - 4]
add eax, 0xc
call fcn.0040771c
test al, al
jne 0x51b563
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x78], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x7c], edx
jmp 0x51b5db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x20]
sar eax, 1
jns 0x51b570
adc eax, 0
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x18]
sub edx, eax
push edx
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x14]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.004076f8
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x60]
call fcn.0054b588
lea edx, [ebp - 0x60]
pop eax
call fcn.0040771c
test al, al
je 0x51b5c5
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x74]
inc eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x78], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x7c], edx
jmp 0x51b5db
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x78], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x74]
inc eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x7c], eax
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_BeginPaint
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00554c74
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00555604
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00554c74
test al, al
jne 0x51b6b3
cmp dword [ebp - 0x14], 0
jne 0x51b62d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 8], eax
jmp 0x51b633
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov byte [eax + 0x2d], 1
mov eax, dword [ebp - 4]
call fcn.0051b9a0
push 0xcc0020
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
call fcn.0042d930
call fcn.00429320
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x2c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x70]
push eax
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x70]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_BitBlt
cmp dword [ebp - 0x14], 0
je 0x51b6b3
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_ReleaseDC
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_EndPaint
jmp 0x51b844
lea eax, [ebp - 0x60]
call fcn.0054b588
lea edx, [ebp - 0x60]
mov eax, dword [ebp - 4]
add eax, 0xc
call fcn.0040771c
test al, al
jne 0x51b6f4
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x78], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x7c], edx
jmp 0x51b76c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x18]
push eax
lea eax, [ebp - 0x70]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1c]
sar eax, 1
jns 0x51b70c
adc eax, 0
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x14]
sub ecx, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
call fcn.004076f8
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x60]
call fcn.0054b588
lea edx, [ebp - 0x60]
pop eax
call fcn.0040771c
test al, al
je 0x51b756
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x74]
inc eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x78], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x7c], edx
jmp 0x51b76c
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x78], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x74]
inc eax
mov edx, dword [ebp - 4]
mov dword [edx + 0x7c], eax
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_BeginPaint
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00554c74
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00555604
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
call fcn.00554c74
test al, al
jne 0x51b834
cmp dword [ebp - 0x14], 0
jne 0x51b7be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_GetDC
mov dword [ebp - 8], eax
jmp 0x51b7c4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov byte [eax + 0x2d], 1
mov eax, dword [ebp - 4]
call fcn.0051b9a0
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
call fcn.0042d930
call fcn.00429320
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x20]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
mov eax, dword [eax + 0x38]
mov edx, dword [eax]
call dword [edx + 0x2c]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
push eax
call sub.gdi32.dll_BitBlt
cmp dword [ebp - 0x14], 0
je 0x51b834
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_ReleaseDC
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
push eax
call sub.user32.dll_EndPaint
pop edi
pop esi
mov esp, ebp
pop ebp
ret