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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1a8
mov eax, dword [0x76f950]
xor eax, esp
mov dword [esp + 0x1a4], eax
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
mov dword [esp + 0x48], eax
mov eax, dword [edi]
mov dword [esp + 0x1c], edi
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], esi
call eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x148]
push eax
push 0x5c
push dword [ecx]
call dword [sym.imp.GDI32.dll_GetObjectW]
push 0xd4
lea eax, [esp + 0x78]
push 0
push eax
mov dword [esp + 0x7c], 0xd8
call fcn.0063ac00
add esp, 0xc
cmp byte [esp + 0x15d], 0
jne 0x5702b0
cmp byte [esp + 0x15e], 0
je 0x5702c5
lea eax, [esp + 0x70]
push eax
push dword [esp + 0x74]
mov eax, dword [edi + 8]
push dword [eax + 8]
call dword [sym.imp.GDI32.dll_GetOutlineTextMetricsW]
mov ecx, dword [esp + 0x48]
mov dword [esi + 0xc], 0
mov dword [esi + 8], 0
mov dword [esi + 4], 0
mov dword [esi], 0
mov eax, dword [ecx]
mov dword [esp + 0x28], 0
test eax, eax
je 0x5702f5
mov eax, dword [eax + 0x34]
xor edx, edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], edx
test eax, eax
je 0x570502
mov eax, dword [ecx]
test eax, eax
jne 0x570311
xor edx, edx
jmp 0x57031f
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x57031b
lea ecx, [eax + 8]
movzx edx, word [ecx + edx*2]
movzx eax, dx
push 0x779178
mov dword [esp + 0x50], eax
mov eax, dword [edi + 8]
push 0
xorps xmm0, xmm0
push 0
movdqa xmmword [esp + 0x5c], xmm0
mov dword [esp + 0x6c], 0
mov ecx, dword [eax + 8]
lea eax, [esp + 0x5c]
push eax
movzx eax, dx
push 0
push eax
push ecx
call dword [sym.imp.GDI32.dll_GetGlyphOutlineW]
xor ecx, ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
cmp eax, 0xffffffff
je 0x5704e7
lea eax, [esp + 0x20]
push eax
push 1
lea eax, [esp + 0x54]
push eax
mov eax, dword [edi + 0xc]
push dword [eax + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov edi, dword [esp + 0x30]
sub edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
add eax, edi
add edx, ecx
cmp byte [esp + 0x15d], 0
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], eax
je 0x57041d
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x134]
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x74]
jl 0x5703cb
mov esi, dword [esp + 0x74]
dec esi
mov dword [esp + 0x14], esi
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x18]
jl 0x57041d
cmp dword [esp + 0x130], 0
jle 0x57041d
mov esi, dword [esp + 0x14]
xor eax, eax
test ecx, ecx
cmovg ecx, eax
cmp edx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
cmovl edx, dword [esp + 0x20]
cmp esi, edi
cmovl edi, esi
add esi, dword [esp + 0x130]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x14], esi
cmp esi, eax
mov esi, dword [esp + 0x18]
jl 0x57041d
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x44], eax
cmp byte [esp + 0x15e], 0
je 0x570483
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x12c]
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x18]
js 0x570483
cmp dword [esp + 0x128], 0
jle 0x570483
mov esi, dword [esp + 0x14]
xor eax, eax
test ecx, ecx
cmovg ecx, eax
cmp edx, dword [esp + 0x20]
mov eax, dword [esp + 0x44]
cmovl edx, dword [esp + 0x20]
cmp esi, edi
cmovl edi, esi
add esi, dword [esp + 0x128]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x14], esi
cmp esi, eax
mov esi, dword [esp + 0x18]
jl 0x570483
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x44], eax
add ecx, dword [esp + 0x28]
add edx, dword [esp + 0x28]
cmp dword [esp + 0x2c], 0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], edx
je 0x5704ca
cmp ecx, edx
jge 0x5704df
cmp edi, eax
jge 0x5704df
cmp dword [esi], ecx
jle 0x5704a8
mov dword [esi], ecx
cmp dword [esi + 4], edi
jle 0x5704b0
mov dword [esi + 4], edi
cmp dword [esi + 8], edx
jge 0x5704b8
mov dword [esi + 8], edx
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
cmp dword [esi + 0xc], eax
jge 0x5704e7
mov dword [esi + 0xc], eax
jmp 0x5704e7
movq xmm0, qword [esp + 0x38]
movq qword [esi], xmm0
movq xmm0, qword [esp + 0x40]
movq qword [esi + 8], xmm0
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
add dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x48]
inc edx
mov dword [esp + 0x2c], edx
cmp edx, dword [esp + 0x34]
jb 0x570307
mov ecx, dword [esp + 0x1ac]
pop edi
pop esi
xor ecx, esp
call fcn.00633732
mov esp, ebp
pop ebp
ret 8