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

Disassembly:
sub esp, 0x464
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov ecx, 4
mov edx, dword [ebp + 0x94]
mov edi, 0x6667d4
xor ebx, ebx
lea eax, [edx + 0x8c]
mov esi, eax
repe cmpsd dword [esi], dword es:[edi]
je 0x4bc4dd
mov ecx, dword [ebp + 0x78]
cmp dword [ecx + 0x3ac], ebx
jne 0x4bc14f
cmp dword [ecx + 0x3b0], ebx
je 0x4bc4dd
test byte [edx + 0x10], 0x10
je 0x4bc4dd
lea ecx, [esp + 0x18]
push ecx
push eax
call dword [sym.imp.RPCRT4.dll_UuidToStringA]
mov ecx, dword [esp + 0x480]
lea edx, [esp + 0x28]
lea eax, [esp + 0x2c]
push edx
mov edx, dword [ebp + 0xa8]
push eax
mov eax, dword [ebp + 0xa4]
push 0x662078
push ebx
push 0x190
push ecx
push 0x41000000
push edx
push eax
call fcn.004ca460
mov ecx, dword [esp + 0x50]
mov edx, dword [ebp + 0xa8]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
add esp, 0x24
push ecx
push edx
call esi
mov ecx, dword [ebp + 0xa4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x28]
push eax
push ecx
call esi
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xa8]
lea edx, [esp + 0x3c]
push edx
push eax
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
mov ecx, dword [ebp + 0xa4]
mov edi, dword [sym.imp.GDI32.dll_SetTextAlign]
push 0xa
push ecx
mov dword [esp + 0x18], ebx
call edi
mov edx, dword [ebp + 0xa4]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xa8]
mov dword [esp + 0x20], ebx
cmp edx, eax
mov dword [esp + 0x14], ebx
je 0x4bc223
mov ebx, dword [esp + 0x47c]
push 0x70
push ebx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x71
push ebx
mov dword [esp + 0x28], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [esp + 0x14], eax
xor ebx, ebx
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp + 0xac]
push eax
mov eax, dword [ebp + 0xc0]
push ecx
mov ecx, dword [ebp + 0xa8]
push edx
mov edx, dword [esp + 0x20]
sub eax, edx
mov edx, dword [ebp + 0xa4]
push eax
push ecx
push edx
call fcn.004ca720
mov ecx, dword [ebp + 0xbc]
add esp, 0x10
mov edx, dword [ebp + 0xa8]
push eax
mov eax, dword [ebp + 0xac]
push eax
mov eax, dword [esp + 0x30]
sub ecx, eax
mov eax, dword [ebp + 0xa4]
push ecx
push edx
push eax
call fcn.004ca6c0
mov ecx, dword [ebp + 0xa4]
add esp, 0x10
push eax
push ecx
call dword [sym.imp.GDI32.dll_TextOutA]
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.RPCRT4.dll_RpcStringFreeA]
mov eax, dword [ebp + 0x78]
cmp dword [eax + 0x3b0], ebx
je 0x4bc44e
mov ecx, dword [ebp + 0x94]
test byte [ecx + 0x10], 0x10
je 0x4bc44e
mov edx, dword [ebp + 0xa4]
push 8
push edx
call edi
mov eax, dword [ebp + 0x94]
mov dword [esp + 0x30], ebx
cmp word [eax + 0x9c], bx
jbe 0x4bc44e
mov dword [esp + 0x1c], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
mov esi, dword [eax + 0xa0]
mov ecx, dword [esp + 0x1c]
add esi, ecx
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x74]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x28]
test eax, eax
je 0x4bc415
lea eax, [esp + 0x74]
push 0x6667b8
push eax
call ebx
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x74]
push ecx
push edx
call ebx
lea eax, [esp + 0x74]
push 0x65e5a8
push eax
call ebx
mov ecx, dword [esi + 8]
lea edx, [esp + 0x74]
push ecx
push edx
call ebx
lea eax, [esp + 0x74]
push 0x65e5bc
push eax
call ebx
mov ecx, dword [esi + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ecx
call edi
test eax, eax
je 0x4bc397
lea edx, [esp + 0x74]
push 0x6667b0
push edx
call ebx
mov eax, dword [esi + 0x14]
lea ecx, [esp + 0x74]
push eax
push ecx
call ebx
lea edx, [esp + 0x74]
xor esi, esi
push edx
call edi
test eax, eax
jle 0x4bc397
cmp byte [esp + esi + 0x74], 0xa
jne 0x4bc38b
mov byte [esp + esi + 0x74], 0x20
lea eax, [esp + 0x74]
inc esi
push eax
call edi
cmp esi, eax
jl 0x4bc37f
lea ecx, [esp + 0x74]
push ecx
call edi
mov ecx, dword [ebp + 0xc0]
mov esi, dword [esp + 0x14]
sub ecx, esi
mov esi, dword [esp + 0x10]
push eax
mov eax, dword [ebp + 0xac]
lea edx, [esp + 0x78]
sub ecx, esi
push edx
mov edx, dword [ebp + 0xa8]
push eax
mov eax, dword [ebp + 0xa4]
push ecx
push edx
push eax
call fcn.004ca720
mov edx, dword [ebp + 0xb4]
mov ecx, dword [ebp + 0xac]
add esp, 0x10
push eax
mov eax, dword [esp + 0x2c]
add edx, eax
mov eax, dword [ebp + 0xa8]
push ecx
mov ecx, dword [ebp + 0xa4]
push edx
push eax
push ecx
call fcn.004ca6c0
mov edx, dword [ebp + 0xa4]
add esp, 0x10
push eax
push edx
call dword [sym.imp.GDI32.dll_TextOutA]
add esi, dword [esp + 0x3c]
mov dword [esp + 0x10], esi
mov eax, dword [ebp + 0x94]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
xor edx, edx
mov dx, word [eax + 0x9c]
inc ecx
add edi, 0x30
cmp ecx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edi
jl 0x4bc2ed
mov edi, dword [sym.imp.GDI32.dll_SetTextAlign]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
xor ebx, ebx
mov eax, dword [esp + 0x24]
mov ecx, dword [ebp + 0xa4]
push eax
push ecx
call edi
cmp dword [esp + 0x10], ebx
jne 0x4bc46a
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
mov eax, dword [ebp + 0xc0]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x484]
mov dword [esp + 0x24], eax
sub eax, ecx
mov ecx, dword [edi + 0xc]
sub eax, ebx
sub eax, 5
cmp eax, ecx
jge 0x4bc4ad
fild dword [esp + 0x24]
fild dword [esp + 0x10]
fmul qword [0x5f92c8]
fiadd dword [esp + 0x14]
fsubp st(1)
call fcn.0055b3c8
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0xa4]
push eax
push ecx
call esi
mov edx, dword [esp + 0x38]
mov eax, dword [ebp + 0xa8]
push edx
push eax
call esi
mov ecx, dword [esp + 0x28]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
push ecx
call esi
mov edx, dword [esp + 0x2c]
push edx
call esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x464
ret 0x10