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

Disassembly:
sub esp, 0x94
push ebx
mov ebx, dword [esp + 0x9c]
push ebp
push esi
test ebx, ebx
push edi
mov dword [esp + 0x14], ecx
je 0x6780807f
mov edx, dword [esp + 0xc4]
mov ebp, dword [esp + 0xb8]
push edx
mov edx, dword [esp + 0xc4]
mov edi, dword [esp + 0xb4]
mov esi, dword [esp + 0xb0]
mov eax, dword [ecx]
push edx
mov edx, dword [esp + 0xc4]
push edx
mov edx, dword [esp + 0xc0]
push ebp
push edx
push edi
push esi
push ebx
call dword [eax + 0x70]
test eax, eax
jge 0x67808081
mov eax, dword [edi]
mov edi, dword [sym.imp.GDI32.dll_GetTextExtentPoint32A]
lea ecx, [esp + 0x30]
mov edx, dword [eax - 8]
push ecx
push edx
push eax
mov eax, dword [ebx + 8]
push eax
call edi
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x28]
mov eax, dword [edx]
push ecx
mov edx, dword [eax - 8]
push edx
push eax
mov eax, dword [ebx + 8]
push eax
call edi
mov ecx, dword [esp + 0x28]
mov eax, dword [ebp]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x48]
mov ecx, dword [eax - 8]
push edx
mov edx, dword [ebx + 8]
push ecx
push eax
push edx
call edi
mov eax, dword [esp + 0x48]
test esi, esi
mov dword [esp + 0x18], eax
je 0x6780807f
mov edx, dword [esp + 0x30]
mov ecx, 1
test edx, edx
jne 0x67807da6
mov edx, dword [esp + 0x28]
test edx, edx
jne 0x67807daa
test eax, eax
je 0x6780807f
jmp 0x67807daa
cmp edx, ecx
jg 0x67807dae
mov dword [esp + 0x20], ecx
cmp dword [esp + 0x28], ecx
jg 0x67807db8
mov dword [esp + 0x24], ecx
cmp eax, ecx
jg 0x67807dc0
mov dword [esp + 0x18], ecx
mov eax, SysReAllocString
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
mov eax, 0x38e38e39
mov dword [esp + 0x40], ecx
imul esi
sar edx, 1
mov eax, edx
mov dword [esp + 0x44], ecx
shr eax, 0x1f
add edx, eax
mov eax, esi
mov ebp, edx
cdq
sub eax, edx
mov edi, ebp
sar eax, 1
sub eax, ebp
mov dword [esp + 0x30], ebp
cmp ebp, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x58], edi
jg 0x67807f50
mov eax, esi
sub eax, ebp
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x18]
push edi
call sym.MfcHlpr520.dll_private:_int___thiscall_CMHPPrintPageHeaderFooter::fnYi_int__int_
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x50]
sub eax, edi
cmp ebp, eax
mov dword [esp + 0x48], eax
jg 0x67807f39
jmp 0x67807e43
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
sub esi, ebp
push edx
push ebp
sub esi, edi
call sym.MfcHlpr520.dll_private:_int___thiscall_CMHPPrintPageHeaderFooter::fnYi_int__int_
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x9c], eax
cmp eax, ecx
jg 0x67807f1f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push esi
call sym.MfcHlpr520.dll_private:_int___thiscall_CMHPPrintPageHeaderFooter::fnYi_int__int_
cmp eax, dword [esp + 0x10]
jg 0x67807f2e
mov ebx, dword [esp + 0x98]
mov edi, dword [esp + 0x9c]
cmp ebx, edi
mov edx, ebx
jg 0x67807e98
mov edx, edi
cmp ebx, eax
mov ecx, ebx
jg 0x67807ea0
mov ecx, eax
cmp edx, ecx
jle 0x67807eac
cmp ebx, edi
jg 0x67807eb2
mov ebx, edi
jmp 0x67807eb2
cmp ebx, eax
jg 0x67807eb2
mov ebx, eax
mov eax, 0x55555556
imul dword [esp + 0xac]
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov edi, edx
mov eax, edi
sub eax, esi
cdq
mov ecx, eax
mov eax, edi
xor ecx, edx
sub eax, ebp
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x58]
add ecx, eax
mov eax, edi
sub eax, edx
cdq
xor eax, edx
sub eax, edx
add ecx, eax
mov eax, dword [esp + 0x10]
cmp ebx, eax
jl 0x67807efc
jne 0x67807f14
cmp ecx, dword [esp + 0x1c]
jge 0x67807f14
mov edx, dword [esp + 0x58]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], esi
mov ebx, dword [esp + 0xa8]
mov edi, dword [esp + 0x58]
mov eax, dword [esp + 0x48]
add ebp, 0xf
cmp ebp, eax
jle 0x67807e3c
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0xac]
mov eax, dword [esp + 0x28]
add edi, 0xf
cmp edi, eax
mov dword [esp + 0x58], edi
jle 0x67807e12
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0xbc]
mov eax, dword [esp + 0xb0]
xor ebp, ebp
mov dword [esp + 0x6c], ecx
mov dword [edi], ecx
mov eax, dword [eax]
mov edx, dword [ebx]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x70], 0x7d00
mov ecx, dword [eax - 8]
lea esi, [esp + 0x64]
push 0x410
push esi
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x70]
mov esi, dword [esp + 0xc0]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x84]
mov dword [esp + 0x8c], eax
mov dword [esi], eax
mov eax, dword [esp + 0xb4]
mov edx, dword [ebx]
push 0x411
mov dword [esp + 0x88], ebp
mov eax, dword [eax]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x94], 0x7d00
push ecx
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x70]
mov edx, dword [esp + 0xc4]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x7c], eax
mov dword [edx], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [ebx]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x80], 0x7d00
mov eax, dword [eax]
lea ebp, [esp + 0x74]
push 0x412
push ebp
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, ebx
call dword [edx + 0x70]
mov ecx, dword [esp + 0xc4]
mov dword [ecx + 4], eax
mov edi, dword [edi + 4]
mov esi, dword [esi + 4]
mov edx, edi
cmp edi, esi
jg 0x6780803e
mov edx, esi
cmp edi, eax
mov ecx, edi
jg 0x67808046
mov ecx, eax
cmp edx, ecx
jle 0x6780806c
cmp edi, esi
jle 0x6780805d
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret 0x20
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret 0x20
cmp edi, eax
jle 0x67808081
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret 0x20
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret 0x20