Function at 0x51e71557
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
xor edi, edi
cmp eax, edi
jne 0x51e71584
mov esi, dword [ebp + 0x14]
push esi
push 1
push 0x51e357bc
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov dword [esi], edi
jmp 0x51e717e0
cmp dword [0x51e85cbc], edi
jne 0x51e71774
lea esi, [eax + eax]
push 2
push esi
call fcn.51e774f5
mov ebx, eax
cmp ebx, edi
lea ecx, [esi + ebx]
mov dword [ebp - 8], eax
mov dword [ebp - 4], ecx
jne 0x51e715b1
xor eax, eax
jmp 0x51e717e0
mov ecx, esi
mov esi, dword [ebp + 0xc]
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor esi, esi
cmp dword [0x51e8b564], esi
jne 0x51e715d8
cmp dword [0x51e8c338], esi
je 0x51e71610
push esi
push esi
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetTextCharsetInfo]
cmp eax, 0xcc
je 0x51e71628
cmp eax, 0xa1
je 0x51e71628
cmp eax, 0xa2
je 0x51e71628
cmp eax, 0xba
je 0x51e71628
cmp eax, 0xb2
je 0x51e71628
cmp eax, 0xb1
je 0x51e71628
mov eax, dword [ebp - 8]
cmp ebx, dword [ebp - 4]
jae 0x51e71628
cmp word [eax], 0xb7
jne 0x51e71621
mov word [eax], 0x2219
inc eax
inc eax
cmp eax, dword [ebp - 4]
jb 0x51e71615
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call fcn.51e6f0cf
test eax, eax
pop ecx
je 0x51e716fa
cmp dword [0x51e8b564], esi
push 0x58
pop edi
mov dword [ebp - 8], edi
jne 0x51e71653
cmp dword [0x51e8c338], esi
je 0x51e7167d
cmp dword [0x51eb7938], esi
je 0x51e7167d
cmp dword [0x51eb7a64], esi
jne 0x51e71685
test byte [ebp + 0x1b], 0x40
jne 0x51e716a3
push dword [ebp + 0x14]
lea eax, [ebp - 8]
push 1
push eax
push dword [ebp + 8]
call dword [0x51eb7944]
jmp 0x51e716b5
cmp dword [0x51eb7a64], esi
je 0x51e716a3
cmp dword [0x51eb794c], esi
je 0x51e716a3
push dword [ebp + 0x14]
lea eax, [ebp - 8]
push 1
push eax
push dword [ebp + 8]
call fcn.51e70f9d
add esp, 0x10
jmp 0x51e716b5
push dword [ebp + 0x14]
lea eax, [ebp - 8]
push 1
push eax
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp eax, esi
mov dword [ebp + 0x10], eax
je 0x51e71769
lea eax, [ebp - 0x10]
push eax
push edi
push edi
push dword [ebp + 8]
call fcn.51e05110
cmp ebx, dword [ebp - 4]
mov edi, ebx
jae 0x51e716f0
movzx eax, word [edi]
lea ecx, [ebp - 0xc]
push ecx
push eax
push eax
push dword [ebp + 8]
call fcn.51e05110
add esi, dword [ebp - 0xc]
inc edi
inc edi
cmp edi, dword [ebp - 4]
jb 0x51e716d5
sub esi, dword [ebp - 0x10]
mov eax, dword [ebp + 0x14]
add dword [eax], esi
jmp 0x51e71769
cmp dword [0x51e8b564], esi
jne 0x51e7170a
cmp dword [0x51e8c338], esi
je 0x51e71732
cmp dword [0x51eb7938], esi
je 0x51e71732
cmp dword [0x51eb7a64], esi
jne 0x51e7173a
test byte [ebp + 0x1b], 0x40
jne 0x51e71756
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call dword [0x51eb7944]
jmp 0x51e71766
cmp dword [0x51eb7a64], esi
je 0x51e71756
cmp dword [0x51eb794c], esi
je 0x51e71756
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call fcn.51e70f9d
add esp, 0x10
jmp 0x51e71766
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
mov dword [ebp + 0x10], eax
push ebx
call fcn.51e77526
mov eax, dword [ebp + 0x10]
jmp 0x51e717e0
cmp dword [0x51e8b564], edi
jne 0x51e71784
cmp dword [0x51e8c338], edi
je 0x51e717ac
cmp dword [0x51eb7938], edi
je 0x51e717ac
cmp dword [0x51eb7a64], edi
jne 0x51e717b4
test byte [ebp + 0x1b], 0x40
jne 0x51e717d0
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [0x51eb7944]
jmp 0x51e717e0
cmp dword [0x51eb7a64], edi
je 0x51e717d0
cmp dword [0x51eb794c], edi
je 0x51e717d0
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.51e70f9d
add esp, 0x10
jmp 0x51e717e0
push dword [ebp + 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
pop edi
pop esi
pop ebx
leave
ret