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

Disassembly:
sub esp, 0x28
push ebp
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x14]
mov ecx, edi
call fcn.0056dd00
mov ebp, eax
mov eax, dword [esp + 0x38]
push eax
mov ecx, esi
call fcn.00536a60
push eax
push ebp
call dword [sym.imp.gdi32.dll_SelectObject]
mov ax, word [esp + 0x3a]
movzx ecx, ax
mov dword [esp + 0xc], ecx
cmp ax, 8
jne 0x5370d2
mov dword [esp + 0xc], 0x20
lea edx, [esp + 0x20]
push edx
push 1
lea eax, [esp + 0x14]
push eax
push ebp
call dword [sym.imp.gdi32.dll_GetTextExtentPoint32W]
test eax, eax
je 0x53738f
movzx eax, word [esp + 0xc]
lea ecx, [esp + 0x28]
push ecx
push eax
push eax
push ebp
call dword [sym.imp.gdi32.dll_GetCharABCWidthsFloatW]
test eax, eax
je 0x53738f
fld dword [esp + 0x2c]
call fcn.005c5ec0
fldz
fld dword [esp + 0x28]
mov ecx, eax
fcom st(1)
mov dword [esp + 0x20], ecx
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x537157
sub esp, 8
fstp qword [esp]
call fcn.005c6b40
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fild dword [esp + 0x20]
fadd dword [esp + 0x10]
call fcn.005c5ec0
mov ecx, eax
mov dword [esp + 0x20], ecx
jmp 0x537159
fstp st(0)
fldz
fld dword [esp + 0x30]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x537197
sub esp, 8
fstp qword [esp]
call fcn.005c6b40
fstp dword [esp + 0x18]
add esp, 8
fld dword [esp + 0x10]
fstp dword [esp + 0x10]
fild dword [esp + 0x20]
fadd dword [esp + 0x10]
call fcn.005c5ec0
fld dword [esp + 0x30]
mov ecx, eax
fld dword [esp + 0x28]
push ebx
fadd dword [esp + 0x30]
inc ecx
sub esp, 8
mov dword [esp + 0x2c], ecx
faddp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp qword [esp]
call fcn.005c6b40
fstp dword [esp + 0x1c]
add esp, 8
fld dword [esp + 0x14]
call fcn.005c5ec0
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00538d60
mov ebx, eax
mov ecx, edi
mov dword [esp + 0x18], ebx
call fcn.004e7fd0
mov edx, dword [esi + 0xb8]
add edx, dword [esp + 0x24]
dec ebx
cmp edx, ebx
mov dword [esp + 0x1c], eax
jl 0x537247
mov ecx, dword [esi + 0xc0]
inc ecx
add dword [esi + 0xbc], ecx
mov edx, dword [esi + 0xbc]
add edx, dword [esp + 0x28]
xor ebx, ebx
dec eax
cmp edx, eax
mov dword [esi + 0xc0], ebx
mov dword [esi + 0xb8], ebx
jl 0x537247
mov ecx, esi
call fcn.00536230
test al, al
je 0x537235
mov ecx, esi
call fcn.00536fd0
test al, al
jne 0x537241
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x28
ret 4
mov dword [esi + 0xbc], ebx
mov ecx, dword [esi + 0xbc]
mov edx, dword [esi + 0xb8]
push 1
lea eax, [esp + 0x14]
push eax
push ecx
push edx
push ebp
call dword [sym.imp.gdi32.dll_TextOutW]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov ecx, edi
call fcn.00538d60
mov ecx, edi
mov dword [esp + 0x14], eax
call fcn.0054eb90
mov ecx, dword [esi + 0xbc]
mov edx, dword [esp + 0x14]
imul ecx, edx
add ecx, dword [esi + 0xb8]
lea ecx, [eax + ecx*4]
test ebp, ebp
jle 0x5372c3
add edx, edx
add edx, edx
jmp 0x5372a0
xor eax, eax
test ebx, ebx
jle 0x5372bc
movzx edi, byte [ecx + eax*4]
neg edi
sbb edi, edi
and edi, 0xffff
mov dword [ecx + eax*4], edi
inc eax
cmp eax, ebx
jl 0x5372a6
add ecx, edx
sub ebp, 1
jne 0x5372a0
fild dword [esp + 0x18]
lea edx, [esp + 0x3c]
fld1
push edx
fld st(0)
lea ecx, [esi + 0x78]
fdivrp st(2)
fxch st(1)
fstp dword [esp + 0x1c]
fidiv dword [esp + 0x20]
fstp dword [esp + 0x20]
call fcn.00536dc0
mov ecx, dword [esi + 0x70]
sub ecx, dword [esi + 0x6c]
sar ecx, 2
dec ecx
mov word [eax], cx
mov dx, word [esp + 0x24]
mov word [eax + 2], dx
mov cx, word [esp + 0x28]
mov word [eax + 4], cx
fild dword [esi + 0xb8]
fld dword [esp + 0x18]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [eax + 8]
fild dword [esi + 0xbc]
fld dword [esp + 0x1c]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [eax + 0xc]
mov edx, dword [esi + 0xb8]
add edx, dword [esp + 0x24]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmulp st(2)
fxch st(1)
fstp dword [eax + 0x10]
mov ecx, dword [esi + 0xbc]
add ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], ecx
fimul dword [esp + 0x1c]
fstp dword [eax + 0x14]
fild dword [esp + 0x20]
fstp dword [eax + 0x18]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
add dword [esi + 0xb8], edx
cmp dword [esi + 0xc0], ecx
jge 0x53737e
mov dword [esi + 0xc0], ecx
pop ebx
pop edi
mov byte [esi + 0xc4], 1
pop esi
pop ebp
add esp, 0x28
ret 4
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x28
ret 4