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

Disassembly:
push ebp
lea ebp, [esp - 0x60]
sub esp, 0xcc
push ebx
mov ebx, dword [ebp + 0x68]
movsx eax, word [ebx + 0x7c]
push edi
xor edi, edi
test byte [ebx + 0x18], 4
mov dword [ebp + 0x68], eax
mov dword [ebp + 0xc], edi
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x24], 2
mov dword [ebp + 0x10], edi
je 0x500fad6f
mov eax, dword [ebp + 0x6c]
cmp eax, dword [ebx + 0x34]
mov dword [ebp + 0x18], 1
je 0x500fad72
mov dword [ebp + 0x18], edi
mov eax, dword [ebp + 0x78]
movsx ecx, word [ebx + 0x7a]
add ecx, eax
test byte [ebp + 0x7c], 8
mov dword [ebp - 0xc], eax
movsx eax, word [ebx + 0x7e]
mov dword [ebp + 0x50], edi
mov dword [ebp + 0x28], edi
mov dword [ebp + 0x34], edi
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], edi
mov dword [ebp - 8], eax
je 0x500fadaa
push dword [ebx + 0x50]
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_FillRect]
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp + 0x5c]
push edx
lea edx, [ebp + 0x2c]
push edx
lea edx, [ebp + 0x1c]
push edx
push dword [ebp + 0x6c]
push eax
call dword [ecx + 0x2c]
test eax, eax
jl 0x500fb4bb
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp + 0x34]
push edx
push dword [ebp + 0x6c]
push eax
call dword [ecx + 0x28]
cmp dword [ebp + 0x34], edi
je 0x500fadef
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp + 0x28]
push edx
push dword [ebp + 0x6c]
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp + 0x28]
neg eax
sbb eax, eax
and eax, 0x40000
or eax, 0xf00f14
cmp dword [ebx + 0x30], edi
mov dword [ebp + 0x38], 0xaa
mov dword [ebp + 0x40], eax
je 0x500fae17
or eax, 0xf000
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x1c]
lea edx, [ebp + 0x38]
push edx
push dword [ebp + 0x2c]
mov dword [ebp + 0x3c], edi
mov dword [ebp + 0x48], edi
mov word [ebp + 0x44], di
mov word [ebp + 0x46], di
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
cmp dword [ebp + 0x48], edi
jne 0x500fae48
cmp word [ebp + 0x44], 0xffff
je 0x500fae48
mov eax, dword [ebx + 0x2c]
mov dword [ebp + 0x48], eax
push esi
push dword [ebp + 0x3c]
push dword [ebp + 0x7c]
push dword [ebp + 0x6c]
push ebx
call fcn.500faccf
test eax, eax
push 0xf
pop esi
je 0x500fae6a
mov dword [ebp + 0x30], 0xd
push 0xe
jmp 0x500fae75
test byte [ebp + 0x7c], 0x20
je 0x500fae7b
mov dword [ebp + 0x30], esi
push 0x11
and byte [ebp + 0x3e], 0xfe
jmp 0x500faebf
push dword [ebp + 0x3c]
push dword [ebp + 0x7c]
push dword [ebp + 0x6c]
push ebx
call fcn.500fad00
test eax, eax
mov dword [ebp + 0x14], 0x16
je 0x500fae9c
mov dword [ebp + 0x30], esi
push 0x12
jmp 0x500faebf
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x6c]
and eax, 0x20000
neg eax
sbb eax, eax
and eax, 9
add eax, 8
cmp ecx, dword [ebx + 0x28]
mov dword [ebp + 0x30], 5
jne 0x500faec0
push 0xd
pop eax
mov esi, dword [sym.imp.USER32.dll_GetSysColor]
push eax
call esi
push dword [ebp + 0x30]
mov dword [ebp + 0x58], eax
mov dword [ebp - 0x3c], eax
call esi
cmp dword [ebp + 0x30], edi
mov dword [ebp - 0x1c], eax
je 0x500faee9
push eax
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetBkColor]
mov dword [ebp + 0xc], eax
push dword [ebp + 0x58]
mov esi, dword [sym.imp.GDI32.dll_SetTextColor]
push dword [ebp + 0x70]
call esi
test byte [ebp + 0x7c], 4
mov dword [ebp - 0x20], eax
je 0x500faf0f
push edi
push dword [ebp + 0x70]
mov dword [ebp + 0x58], edi
mov dword [ebp - 0x3c], edi
call esi
mov dword [ebp + 0x24], edi
test byte [ebp + 0x3c], 0x10
je 0x500faf32
mov eax, dword [ebx + 0x5c]
cmp eax, edi
jne 0x500faf25
push ebx
call fcn.50272bbe
mov eax, dword [ebx + 0x5c]
mov ecx, dword [ebp + 0x6c]
cmp ecx, dword [ebx + 0x28]
jne 0x500faf47
lea ecx, [ebx + 0x60]
jmp 0x500faf40
mov ecx, dword [ebp + 0x6c]
cmp ecx, dword [ebx + 0x28]
mov eax, dword [ebx + 0x54]
jne 0x500faf47
lea ecx, [ebx + 0x58]
push ecx
push eax
call fcn.50272bbe
push eax
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
push dword [ebp + 0x6c]
mov dword [ebp - 0x18], eax
push ebx
mov dword [ebp - 0x44], edi
call fcn.5007f44f
test eax, eax
je 0x500faf77
xor ecx, ecx
inc ecx
test byte [ebx + 0x18], 4
mov dword [ebp + 0x50], ecx
jne 0x500faf7a
test byte [ebx + 8], 0x20
jne 0x500faf7a
mov ecx, dword [ebp - 0x44]
cmp dword [ebp + 0x18], edi
je 0x500faf82
or ecx, 0x10
mov eax, ecx
and eax, 0x10
test cl, 1
mov dword [ebp + 0x18], eax
je 0x500faf95
or dword [ebp + 0x3c], 2
jmp 0x500faf99
and dword [ebp + 0x3c], 0xfffffffd
mov eax, dword [ebp + 0x58]
cmp dword [ebp - 0x3c], eax
je 0x500fafa9
push dword [ebp - 0x3c]
push dword [ebp + 0x70]
call esi
mov ecx, dword [ebp + 0x7c]
and ecx, 2
mov dword [ebp - 0x14], ecx
jne 0x500fafc5
mov eax, dword [ebx + 8]
test al, 3
je 0x500fafc5
test al, 4
je 0x500fafc5
mov eax, dword [ebp + 0x68]
add dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x5c]
imul eax, dword [ebp + 0x68]
add dword [ebp + 0x74], eax
cmp ecx, edi
jne 0x500fb078
mov ecx, dword [ebx + 0x30]
cmp ecx, edi
je 0x500fb00e
mov eax, dword [ebp + 0x3c]
shr eax, 0xc
and eax, 0xf
mov dword [ebp + 0x10], eax
je 0x500fb00e
movsx edx, word [ebx + 0x7a]
sub edx, dword [ebx + 0x4c]
mov esi, dword [ebp + 0x74]
add edx, dword [ebp + 0x78]
push edi
push edx
push esi
push dword [ebp + 0x70]
dec eax
push eax
push ecx
call dword [sym.imp.COMCTL32.dll_ImageList_Draw]
add esi, dword [ebx + 0x48]
mov dword [ebp + 0x74], esi
cmp dword [ebp + 0x48], edi
je 0x500fb084
mov ecx, dword [ebp + 0x46]
xor edi, edi
cmp dword [ebp + 0x50], edi
mov esi, 0xff000000
mov eax, esi
jne 0x500fb027
mov ecx, dword [ebp + 0x44]
test byte [ebp + 0x3c], 4
movzx ecx, cx
mov dword [ebp + 0x50], ecx
je 0x500fb03f
push 4
pop edi
push dword [ebp + 0x48]
call dword [sym.imp.COMCTL32.dll_ImageList_GetBkColor]
mov ecx, dword [ebp + 0x3c]
and ecx, 0xf00
or ecx, edi
push ecx
movsx ecx, word [ebx + 0x76]
push eax
movsx eax, word [ebx + 0x7a]
sub eax, ecx
push esi
cdq
push 0
sub eax, edx
push 0
sar eax, 1
add eax, dword [ebp + 0x78]
push eax
push dword [ebp + 0x74]
push dword [ebp + 0x70]
push dword [ebp + 0x50]
push dword [ebp + 0x48]
call dword [sym.imp.COMCTL32.dll_ImageList_DrawEx]
xor edi, edi
cmp dword [ebp + 0x48], edi
je 0x500fb084
movsx eax, word [ebx + 0x74]
add dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
lea ecx, [ebp + 0x54]
push ecx
mov ecx, dword [ebp + 0x3c]
shr ecx, 0x14
and ecx, 0xf
push ecx
push dword [ebp + 0x2c]
push eax
call dword [edx + 0x20]
cmp dword [ebp + 0x54], edi
je 0x500fb2a6
push dword [ebp + 0x54]
call dword [sym.imp.vsansi.dll_lstrlenW]
push dword [ebp + 0x54]
mov dword [ebp + 0x58], eax
push dword [ebp + 0x70]
call dword [0x5028e3d8]
mov esi, dword [ebp + 0x74]
movzx eax, ax
add eax, esi
mov dword [ebp - 8], eax
mov eax, dword [ebx + 0x24]
cmp eax, dword [ebp + 0x6c]
mov dword [ebp - 0x10], esi
jne 0x500fb0f7
lea edi, [ebx + 0xa0]
push dword [edi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x500fb0f7
push dword [edi]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x500fb2a6
test byte [ebp + 0x3e], 1
je 0x500fb24d
push dword [ebp + 0x70]
lea esi, [ebp - 0x10]
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call dword [sym.imp.GDI32.dll_GetTextAlign]
cmp word [ebp + 0x4e], 0xffff
mov dword [ebp + 0x50], eax
jne 0x500fb129
mov eax, dword [ebp + 0x58]
sub eax, dword [ebp + 0x4c]
mov word [ebp + 0x4e], ax
mov eax, dword [ebp + 0x50]
or eax, 1
push eax
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetTextAlign]
movsx ecx, word [ebx + 0x78]
movsx eax, word [ebx + 0x7a]
mov esi, dword [sym.imp.GDI32.dll_MoveToEx]
sub eax, ecx
mov ecx, dword [ebp + 0x74]
cdq
sub eax, edx
sar eax, 1
add eax, dword [0x50296de8]
xor edi, edi
add eax, dword [ebp + 0x78]
push edi
push eax
mov eax, dword [0x50296db8]
add eax, ecx
push eax
push dword [ebp + 0x70]
call esi
cmp word [ebp + 0x4c], di
jbe 0x500fb1a7
movzx eax, word [ebp + 0x4c]
push edi
push eax
push dword [ebp + 0x54]
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0x24]
push edi
push edi
push dword [ebp + 0x70]
call dword [sym.imp.vsansi.dll_ExtTextOutW]
lea eax, [ebp + 4]
push eax
push edi
push edi
push dword [ebp + 0x70]
call esi
mov eax, dword [ebp + 4]
push edi
push dword [ebp + 8]
mov dword [ebp - 0x30], eax
push eax
push dword [ebp + 0x70]
call esi
push dword [ebp + 0x14]
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetBkColor]
movzx eax, word [ebp + 0x4e]
mov ecx, dword [ebp + 0x54]
push edi
push eax
movzx eax, word [ebp + 0x4c]
lea eax, [ecx + eax*2]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0x24]
push edi
push edi
push dword [ebp + 0x70]
call dword [sym.imp.vsansi.dll_ExtTextOutW]
push dword [ebp - 0x1c]
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetBkColor]
movzx eax, word [ebp + 0x4c]
movzx ecx, word [ebp + 0x4e]
add eax, ecx
cmp eax, dword [ebp + 0x58]
jge 0x500fb23f
lea eax, [ebp + 4]
push eax
push edi
push edi
push dword [ebp + 0x70]
call esi
mov eax, dword [ebp + 4]
push edi
push dword [ebp + 8]
mov dword [ebp - 0x30], eax
push eax
push dword [ebp + 0x70]
call esi
movzx ecx, word [ebp + 0x4e]
movzx eax, word [ebp + 0x4c]
mov edx, dword [ebp + 0x58]
push edi
sub edx, ecx
sub edx, eax
push edx
add ecx, eax
mov eax, dword [ebp + 0x54]
lea eax, [eax + ecx*2]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [ebp + 0x24]
push edi
push edi
push dword [ebp + 0x70]
call dword [sym.imp.vsansi.dll_ExtTextOutW]
push dword [ebp + 0x50]
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetTextAlign]
jmp 0x500fb288
movsx ecx, word [ebx + 0x78]
push 0
push dword [ebp + 0x58]
lea eax, [ebp - 0x10]
push dword [ebp + 0x54]
push eax
movsx eax, word [ebx + 0x7a]
push dword [ebp + 0x24]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, dword [0x50296de8]
add eax, dword [ebp + 0x78]
push eax
mov eax, dword [0x50296db8]
add eax, esi
push eax
push dword [ebp + 0x70]
call dword [sym.imp.vsansi.dll_ExtTextOutW]
xor edi, edi
test byte [ebx + 0x18], 4
je 0x500fb2a6
cmp dword [ebp + 0x18], edi
je 0x500fb2a6
test byte [ebp + 0x7c], 0x24
jne 0x500fb2a6
lea eax, [ebp - 0x10]
push eax
push dword [ebp + 0x70]
call dword [sym.imp.USER32.dll_DrawFocusRect]
xor esi, esi
cmp dword [ebp + 0x30], esi
je 0x500fb2b9
push dword [ebp + 0xc]
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetBkColor]
push dword [ebp - 0x20]
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [ebp - 0x18]
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [ebp - 0x14], esi
jne 0x500fb4b1
cmp dword [ebp + 0x48], esi
mov edi, dword [ebp + 0x74]
je 0x500fb2e8
movsx eax, word [ebx + 0x74]
sub edi, eax
cmp dword [ebp + 0x10], esi
je 0x500fb2f0
sub edi, dword [ebx + 0x48]
mov eax, dword [ebx + 8]
test al, 2
je 0x500fb473
sub edi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x5c]
dec dword [ebp + 0x5c]
test ecx, ecx
mov dword [ebp + 0x74], edi
jne 0x500fb313
test al, 4
je 0x500fb4b1
mov eax, dword [ebp + 0x1c]
and dword [ebp + 0x20], 0
mov ecx, dword [eax]
lea edx, [ebp + 0x20]
push edx
push eax
call dword [ecx + 0x10]
xor edx, edx
cmp dword [ebp + 0x5c], 0xffffffff
mov esi, 0xcc0020
jne 0x500fb3ac
cmp dword [ebp + 0x6c], edx
jne 0x500fb3ac
mov eax, dword [ebp + 0x2c]
inc eax
cmp eax, dword [ebp + 0x20]
jae 0x500fb38b
cmp dword [ebp + 0x34], edx
push 2
pop ecx
je 0x500fb35b
test byte [ebx + 8], 1
je 0x500fb35b
xor eax, eax
cmp dword [ebp + 0x28], edx
setne al
lea eax, [eax + eax + 2]
add ecx, eax
imul ecx, dword [ebp + 0x68]
movsx eax, word [ebx + 0x7a]
push esi
push eax
push dword [ebp + 0x68]
push 0
push ecx
push dword [ebx + 0x6c]
mov ecx, eax
neg ecx
push ecx
push dword [ebp + 0x68]
mov ecx, dword [ebp + 0x78]
add eax, ecx
push eax
push edi
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_StretchBlt]
or eax, 0xffffffff
jmp 0x500fb3d0
test byte [ebx + 8], 1
je 0x500fb3a8
cmp dword [ebp + 0x34], edx
je 0x500fb3a3
xor eax, eax
cmp dword [ebp + 0x28], edx
setne al
add eax, 8
jmp 0x500fb3d0
push 7
pop eax
jmp 0x500fb3d0
push 3
jmp 0x500fb3a5
mov eax, dword [ebp + 0x2c]
inc eax
cmp eax, dword [ebp + 0x20]
sbb eax, eax
inc eax
inc eax
cmp dword [ebp + 0x34], edx
je 0x500fb3d0
test byte [ebx + 8], 1
je 0x500fb3d0
xor ecx, ecx
cmp dword [ebp + 0x28], edx
setne cl
lea ecx, [ecx + ecx + 2]
add eax, ecx
mov edi, dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, eax
not ecx
test ecx, ecx
je 0x500fb3fc
imul eax, dword [ebp + 0x68]
push esi
push 0
push eax
push dword [ebx + 0x6c]
movsx eax, word [ebx + 0x7a]
push eax
push dword [ebp + 0x68]
push dword [ebp + 0x78]
push dword [ebp + 0x74]
push dword [ebp + 0x70]
call edi
mov eax, dword [ebp + 0x5c]
dec dword [ebp + 0x5c]
test eax, eax
jge 0x500fb41a
test byte [ebx + 8], 4
je 0x500fb4b1
cmp dword [ebp + 0x5c], 0xffffffff
jb 0x500fb4b1
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax]
lea edx, [ebp + 0x6c]
push edx
push dword [ebp + 0x6c]
push eax
call dword [ecx + 0x3c]
mov eax, dword [ebp + 0x68]
sub dword [ebp + 0x74], eax
mov eax, dword [ebx + 0x1c]
mov ecx, dword [eax]
push 0
lea edx, [ebp + 0x2c]
push edx
lea edx, [ebp]
push edx
push dword [ebp + 0x6c]
push eax
call dword [ecx + 0x2c]
test eax, eax
jl 0x500fb3fc
mov eax, dword [ebp]
mov ecx, dword [eax]
lea edx, [ebp + 0x20]
push edx
push eax
call dword [ecx + 0x10]
mov eax, dword [ebp]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 0x2c]
inc eax
cmp eax, dword [ebp + 0x20]
jae 0x500fb3fc
push esi
push 0
push 0
jmp 0x500fb3e6
cmp dword [ebp + 0x34], esi
je 0x500fb4b1
test al, 1
je 0x500fb4b1
cmp dword [ebp + 0x5c], esi
jne 0x500fb485
test al, 4
je 0x500fb4b1
mov eax, dword [ebp + 0x28]
push 0xcc0020
neg eax
push esi
sbb eax, eax
and eax, dword [ebp + 0x68]
sub edi, dword [ebp + 0x68]
push eax
push dword [ebx + 0x6c]
movsx eax, word [ebx + 0x7a]
push eax
push dword [ebp + 0x68]
push dword [ebp + 0x78]
push edi
push dword [ebp + 0x70]
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
pop esi
pop edi
pop ebx
add ebp, 0x60
leave
ret 0x18