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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [0x4584d0]
mov ebx, dword [esp + 0xb0]
test eax, eax
je 0x412f6f
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
imul ecx, dword [0x4584c4], 0x64
mov esi, eax
mov eax, 0x66666667
sub esp, 4
mov dword [esp + 0x70], 0
imul ecx
mov eax, dword [0x4584c0]
sar ecx, 0x1f
mov dword [esp], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x7c], eax
mov eax, dword [0x4584d0]
sar edx, 9
sub edx, ecx
mov dword [esp + 4], eax
mov dword [esp + 0x78], edx
call dword [sym.imp.GDI32.dll_SelectObject]
sub esp, 8
mov eax, dword [esp + 0xb4]
test eax, eax
jne 0x412f90
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], 0xcc0020
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x1c], edx
mov edi, dword [sym.imp.GDI32.dll_BitBlt]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
call edi
mov eax, dword [0x459290]
sub esp, 0x24
test eax, eax
jne 0x412fe9
mov eax, dword [0x456340]
test eax, eax
je 0x412e92
cmp eax, 0xffff
jle 0x412ea0
mov ebp, dword [0x4584ac]
test ebp, ebp
je 0x4139a0
imul ecx, dword [0x4584c4], 0x64
mov eax, 0x66666667
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp], ebx
imul ecx
sar ecx, 0x1f
mov eax, 0xb60b60b7
sar edx, 9
sub edx, ecx
imul ecx, dword [0x4584c0], 0x26c
mov dword [esp + 0x88], edx
imul ecx
mov eax, dword [0x4584c8]
mov dword [esp + 8], eax
lea eax, [esp + 0x80]
add edx, ecx
sar ecx, 0x1f
mov dword [esp + 4], eax
sar edx, 9
sub edx, ecx
mov dword [esp + 0x8c], edx
call dword [sym.imp.USER32.dll_FillRect]
sub esp, 0xc
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x84]
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x80]
mov dword [esp + 0x20], 0xee0086
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
call edi
sub esp, 0x24
mov dword [esp], esi
call dword [sym.imp.GDI32.dll_DeleteDC]
sub esp, 4
call dword [sym.imp.GDI32.dll_GdiFlush]
mov ecx, dword [0x459290]
test ecx, ecx
jne 0x413030
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [0x4584c0]
mov dword [esp + 0x20], 0xcc0020
mov dword [esp + 0x1c], 0
mov edi, dword [sym.imp.GDI32.dll_BitBlt]
mov dword [esp + 0x10], eax
mov eax, dword [0x4584c4]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call edi
mov eax, dword [0x459290]
sub esp, 0x24
test eax, eax
je 0x412e82
mov dword [esp + 4], 0xe0e0e0
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_SetDCBrushColor]
sub esp, 8
mov dword [esp], 0x12
call dword [sym.imp.GDI32.dll_GetStockObject]
sub esp, 4
lea ecx, [esp + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], ebx
call dword [sym.imp.USER32.dll_FillRect]
sub esp, 0xc
jmp 0x412f5d
mov ecx, dword [0x4584c4]
mov esi, 0x66666667
mov dword [esp], ebx
imul ebp, ecx, 0x32
mov eax, ebp
sar ebp, 0x1f
imul esi
sar edx, 9
mov edi, edx
sub edi, ebp
mov ebp, dword [0x4584c0]
mov eax, ebp
sar ebp, 0x1f
imul esi
lea eax, [ecx + 0x7f]
sar edx, 2
sub edx, ebp
test ecx, ecx
cmovns eax, ecx
mov ebp, edx
sar eax, 7
test ecx, ecx
mov esi, eax
lea eax, [ecx + 0xff]
cmovns eax, ecx
sar eax, 8
mov dword [esp + 0x44], eax
mov eax, dword [0x4504ec]
mov dword [esp + 4], eax
call dword [sym.imp.GDI32.dll_SelectObject]
sub esp, 8
mov dword [esp + 4], 1
mov dword [esp], ebx
call dword [sym.imp.GDI32.dll_SetBkMode]
mov ecx, dword [sym.imp.GDI32.dll_SetDCBrushColor]
sub esp, 8
mov dword [esp + 0x64], ecx
mov dword [esp + 4], 0x4040c0
mov dword [esp], ebx
call ecx
mov eax, dword [sym.imp.GDI32.dll_SetTextColor]
sub esp, 8
mov dword [esp + 4], 0x4040c0
mov dword [esp], ebx
mov dword [esp + 0x60], eax
call eax
mov eax, ebp
sub esp, 8
sub eax, esi
mov dword [esp + 0x40], ebp
lea ebp, [edi + edi]
mov dword [esp + 0x84], esi
mov dword [esp + 0x8c], eax
mov eax, esi
mov dword [esp + 0x80], esi
mov esi, ebp
sub esi, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x88], esi
mov esi, dword [sym.imp.GDI32.dll_GetStockObject]
mov dword [esp], 0x12
mov dword [esp + 0x38], esi
call esi
mov edx, dword [sym.imp.USER32.dll_FrameRect]
sub esp, 4
lea esi, [esp + 0x80]
mov dword [esp + 0x3c], edx
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call edx
mov edx, dword [0x450484]
sub esp, 0xc
lea eax, [edx + 0x90c]
mov edx, dword [sym.imp.USER32.dll_DrawTextW]
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
mov dword [esp + 0x34], edx
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
mov dword [esp + 0x10], 0x25
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], ebx
call edx
sub esp, 0x14
mov ecx, dword [esp + 0x64]
mov dword [esp + 4], 0xc04040
mov dword [esp], ebx
call ecx
sub esp, 8
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], 0xc04040
mov dword [esp], ebx
call ecx
xor edx, edx
mov ecx, edi
sub esp, 8
mov word [esp + 0x72], dx
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
sub ecx, edx
add edi, edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], edi
mov edi, ebp
sub edi, edx
mov dword [esp + 0x54], edi
lea edi, [ecx + eax]
add eax, eax
sub ecx, eax
mov dword [esp + 0x6c], edi
mov ebp, edi
mov edi, 0x31
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x48], ecx
jmp 0x413249
mov edx, dword [esp + 0x48]
lea eax, [edi + 1]
mov dword [esp + 0xc], esi
add edi, 2
mov word [esp + 0x70], ax
mov dword [esp + 4], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
mov dword [esp], ebx
call edx
sub esp, 0x14
mov eax, dword [esp + 0x40]
add ebp, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x84], ebp
mov dword [esp], 0x12
add eax, ebp
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call ecx
sub esp, 0xc
mov edx, dword [esp + 0x48]
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
mov dword [esp + 4], edx
mov edx, dword [esp + 0x34]
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
mov word [esp + 0x70], di
mov dword [esp + 0x10], 0x25
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0xffffffff
mov dword [esp], ebx
call edx
sub esp, 0x14
mov eax, dword [esp + 0x50]
sub dword [esp + 0x84], 1
add dword [esp + 0x8c], 1
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x54]
mov dword [esp], 0x12
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x38]
call eax
sub esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call ecx
sub esp, 0xc
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
cmp di, 0x39
jne 0x413210
mov ecx, dword [esp + 0x48]
mov eax, 0x30
mov dword [esp + 0xc], esi
mov word [esp + 0x70], ax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
call eax
sub esp, 0x14
mov dword [esp], ebx
mov edi, dword [esp + 0x64]
mov dword [esp + 4], 0
call edi
sub esp, 8
mov dword [esp], ebx
mov edi, dword [esp + 0x60]
mov dword [esp + 4], 0
call edi
sub esp, 8
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x6c]
mov dword [esp], 0x12
lea edx, [ecx + ecx*4]
lea edi, [ecx*8]
add ebp, edx
mov dword [esp + 0x48], edx
mov edx, edi
sub edx, ecx
mov dword [esp + 0x84], ebp
mov eax, edx
mov edx, dword [esp + 0x5c]
sub eax, edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x88], eax
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov edx, dword [0x450484]
sub esp, 0xc
lea eax, [edx + 0x1338]
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
call eax
sub esp, 0x14
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [esp], 0x12
sub dword [esp + 0x84], 1
mov dword [esp + 0x88], ecx
add dword [esp + 0x8c], 1
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x38]
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
sub esp, 0xc
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x60]
mov dword [esp], ebx
add dword [esp + 0x80], ecx
sub dword [esp + 0x88], ecx
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
mov dword [esp + 4], 0x4040c0
call edx
mov eax, dword [0x450484]
sub esp, 8
add eax, 0x1180
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 0x10], 0x24
mov dword [esp + 8], 0xffffffff
call eax
mov eax, dword [0x450484]
sub esp, 0x14
add eax, 0x1184
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 0x10], 0x26
mov dword [esp + 8], 0xffffffff
call eax
sub esp, 0x14
mov dword [esp], ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 4], 0x909020
call eax
sub esp, 8
mov dword [esp], ebx
mov edx, dword [esp + 0x60]
mov dword [esp + 4], 0x909020
call edx
mov eax, edi
sub esp, 8
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x5c]
mov dword [esp], 0x12
add ebp, ecx
mov ecx, dword [esp + 0x44]
sub eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x84], ebp
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ecx
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov edx, dword [0x450484]
sub esp, 0xc
lea eax, [edx + 0x1188]
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
call eax
mov edx, dword [0x450484]
sub esp, 0x14
lea eax, [edx + 0x1188]
add dword [esp + 0x80], 2
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
call eax
sub esp, 0x14
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [esp], 0x12
sub dword [esp + 0x84], 1
mov dword [esp + 0x88], ecx
add dword [esp + 0x8c], 1
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x38]
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov edx, dword [0x450484]
sub esp, 0xc
lea eax, [edx + 0x118c]
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
mov dword [esp + 0xc], esi
add dword [esp + 0x80], 1
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
sub dword [esp + 0x88], 1
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
call eax
mov edx, dword [0x450484]
sub esp, 0x14
lea eax, [edx + 0x118c]
add dword [esp + 0x80], 2
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
call eax
sub esp, 0x14
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x5c]
mov dword [esp], 0x12
add edi, ecx
add ebp, ecx
sub edi, edx
mov dword [esp + 0x84], ebp
mov edx, dword [esp + 0x38]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x88], edi
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov edi, dword [0x450484]
sub esp, 0xc
lea eax, [edi + 0x1190]
add dword [esp + 0x84], 1
mov edi, dword [esp + 0x34]
sub dword [esp + 0x8c], 1
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
mov dword [esp + 0xc], esi
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call edi
mov eax, dword [0x450484]
sub esp, 0x14
add eax, 0x1190
sub dword [esp + 0x8c], 2
mov dword [esp + 0xc], esi
mov dword [esp], ebx
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call edi
sub esp, 0x14
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov dword [esp], 0x12
sub dword [esp + 0x84], 1
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x54]
add dword [esp + 0x8c], 3
mov dword [esp + 0x88], ecx
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov ecx, dword [0x450484]
sub esp, 0xc
lea eax, [ecx + 0x1194]
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
mov dword [esp + 0xc], esi
add dword [esp + 0x80], 1
mov dword [esp], ebx
sub dword [esp + 0x88], 1
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call edi
mov ecx, dword [0x450484]
sub esp, 0x14
lea eax, [ecx + 0x1194]
mov dword [esp + 0xc], esi
mov dword [esp], ebx
sub dword [esp + 0x8c], 2
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call edi
sub esp, 0x14
mov dword [esp], ebx
mov eax, dword [esp + 0x64]
mov dword [esp + 4], 0x20a020
call eax
sub esp, 8
mov dword [esp], ebx
mov eax, dword [esp + 0x60]
mov dword [esp + 4], 0x20a020
call eax
sub esp, 8
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov dword [esp], 0x12
add ebp, ecx
mov ecx, dword [esp + 0x5c]
add edx, edx
mov dword [esp + 0x84], ebp
sub edx, ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x88], ecx
call edx
sub esp, 4
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call eax
mov eax, dword [0x450484]
sub esp, 0xc
add eax, 0x928
mov dword [esp + 0xc], esi
mov dword [esp], ebx
add dword [esp + 0x84], 1
sub dword [esp + 0x8c], 1
add dword [esp + 0x80], 1
sub dword [esp + 0x88], 1
mov dword [esp + 0x10], 0x25
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
call edi
sub esp, 0x14
call dword [sym.imp.GDI32.dll_GdiFlush]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [0x458fe0], 0xb
jne 0x412ea0
jmp 0x412f5d