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

Disassembly:
push 0xffffffffffffffff
push 0x101f44ff
mov eax, dword fs:[0]
push eax
sub esp, 0xd8
mov eax, dword [0x10293044]
xor eax, esp
mov dword [esp + 0xd0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10293044]
xor eax, esp
push eax
lea eax, [esp + 0xec]
mov dword fs:[0], eax
mov eax, dword [esp + 0xfc]
mov ebp, dword [esp + 0x100]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x104]
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], ecx
xor ebx, ebx
mov dword [esp + 0xf4], ebx
mov eax, dword [eax + 0x88]
cmp eax, ebx
jne 0x1012cac7
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
mov esi, eax
mov dword [esp + 0x30], eax
call fcn.100deb00
mov esi, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0xf4], 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0xf4], 2
mov eax, dword [esp + 0x3c]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0xffffffffffffffff
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push ebx
lea edi, [esp + 0x3c]
mov word [ecx + 4], bx
call fcn.10007880
mov byte [esp + 0x110], 3
mov eax, dword [esp + 0x44]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x8c], esp
push 0xffffffffffffffff
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], ebx
push ebx
mov word [ecx + 4], bx
call fcn.10007880
mov byte [esp + 0x12c], 4
mov byte [esp + 0x12c], 2
mov ecx, edi
call fcn.1012c8f0
add esp, 0x38
cmp eax, ebx
jne 0x1012cbcd
mov eax, dword [esp + 0x28]
cmp dword [eax + 0x18], 8
mov ecx, dword [eax + 0x14]
jb 0x1012cb7d
mov eax, dword [eax + 4]
jmp 0x1012cb80
add eax, 4
mov edx, dword [esp + 0x34]
push 0x8828
push edx
push ecx
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextW]
mov byte [esp + 0xf4], 1
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x1012cbac
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0xf4], bl
cmp esi, ebx
je 0x1012cfbd
push esi
jmp 0x1012cfaf
mov dword [esp + 0xc4], 7
mov dword [esp + 0xc0], ebx
mov word [esp + 0xb0], bx
mov byte [esp + 0xf4], 5
xor esi, esi
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x2c], esi
jmp 0x1012cc10
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
je 0x1012cf3e
mov eax, dword [esp + 0x20]
sub eax, ecx
sar eax, 2
cmp esi, eax
jae 0x1012cf3e
mov dword [esp + 0xe0], 7
mov dword [esp + 0xdc], ebx
mov word [esp + 0xcc], bx
mov byte [esp + 0xf4], 6
cmp esi, ebx
mov eax, dword [esp + 0x1c]
jne 0x1012ccd1
cmp eax, ebx
je 0x1012cc66
mov ecx, dword [esp + 0x20]
sub ecx, eax
sar ecx, 2
jne 0x1012cc70
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax]
mov ecx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x5c]
push eax
push ecx
xor ecx, ecx
call fcn.1000f690
mov byte [esp + 0xf4], 7
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xb4]
call fcn.10007880
mov byte [esp + 0xf4], 6
mov edi, 8
cmp dword [esp + 0x70], edi
jb 0x1012ccbb
mov edx, dword [esp + 0x5c]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x70], 7
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
jmp 0x1012cd8a
cmp eax, ebx
lea edi, [esi - 1]
je 0x1012cce7
mov edx, dword [esp + 0x20]
mov ecx, edx
sub ecx, eax
sar ecx, 2
cmp edi, ecx
jb 0x1012ccf5
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ecx + 0x14]
mov edi, dword [eax + edi*4]
add edi, ecx
cmp eax, ebx
je 0x1012cd0e
sub edx, eax
sar edx, 2
cmp esi, edx
jb 0x1012cd18
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + esi*4]
mov ecx, dword [esp + 0x28]
sub edx, edi
push edx
lea eax, [esp + 0x94]
push eax
push ecx
mov ecx, edi
call fcn.1000f690
mov byte [esp + 0xf4], 8
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xb4]
call fcn.10007880
mov byte [esp + 0xf4], 6
cmp dword [esp + 0xa8], 8
jb 0x1012cd6b
mov edx, dword [esp + 0x94]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0xa8], 7
mov dword [esp + 0xa4], ebx
mov word [esp + 0x94], bx
mov edi, 8
mov ecx, dword [esp + 0x1c]
cmp ecx, ebx
je 0x1012cd9f
mov eax, dword [esp + 0x20]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x1012cda9
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ecx, dword [ecx + esi*4]
push 0xffffffffffffffff
lea eax, [esp + 0x78]
push eax
push edx
call fcn.1000f690
mov byte [esp + 0xf4], 9
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0xd0]
call fcn.10007880
mov byte [esp + 0xf4], 6
cmp dword [esp + 0x8c], edi
jb 0x1012cdf2
mov eax, dword [esp + 0x78]
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
cmp dword [esp + 0xc4], edi
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x8c], 7
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
jae 0x1012ce20
lea eax, [esp + 0xb0]
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0xc0]
push 0x8828
push esi
push ecx
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextW]
cmp dword [esp + 0xc4], edi
mov eax, dword [esp + 0xb0]
jae 0x1012ce51
lea eax, [esp + 0xb0]
mov ecx, dword [esp + 0xc0]
push 0xc08
lea edx, [esp + 0x48]
push edx
push ecx
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
sub edx, dword [esp + 0x44]
push eax
add dword [esi], edx
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [esp + 0xe0], edi
mov eax, dword [esp + 0xcc]
jae 0x1012ce98
lea eax, [esp + 0xcc]
mov ecx, dword [esp + 0xdc]
push 0x8828
push esi
push ecx
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextW]
cmp dword [esp + 0xe0], edi
mov eax, dword [esp + 0xcc]
jae 0x1012cec5
lea eax, [esp + 0xcc]
mov ecx, dword [esp + 0xdc]
push 0xc08
lea edx, [esp + 0x48]
push edx
push ecx
push eax
push ebp
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [esp + 0x30]
push edx
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x44]
add dword [esi], eax
mov byte [esp + 0xf4], 5
cmp dword [esp + 0xe0], edi
jb 0x1012cf16
mov ecx, dword [esp + 0xcc]
push ecx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
add dword [esp + 0x2c], 1
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xe0], 7
mov dword [esp + 0xdc], ebx
mov word [esp + 0xcc], bx
jmp 0x1012cc10
mov byte [esp + 0xf4], 2
cmp dword [esp + 0xc4], 8
jb 0x1012cf60
mov edx, dword [esp + 0xb0]
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0xc4], 7
mov dword [esp + 0xc0], ebx
mov word [esp + 0xb0], bx
mov byte [esp + 0xf4], 1
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x1012cf93
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0xf4], bl
mov eax, dword [esp + 0x40]
cmp eax, ebx
je 0x1012cfbd
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp eax, ebx
je 0x1012cfbd
mov dword [esp + 0x38], ebx
mov dword [esp + 0xf4], 0xffffffff
mov ecx, dword [esp + 0xec]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd0]
xor ecx, esp
call fcn.101d19cc
add esp, 0xe4
ret 0xc