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

Disassembly:
sub esp, 0x34
push ebp
mov ebp, dword [esp + 0x48]
dec ebp
test ebp, ebp
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], 0x270f
mov dword [esp + 0x10], 0xffffd8f1
mov dword [esp + 8], ebp
jge 0x511c1a
xor eax, eax
pop ebp
add esp, 0x34
ret 0x44
cmp ebp, 0xffffffff
jl 0x511ddb
push ebx
push esi
push edi
xor ebx, ebx
cmp ebp, 0xffffffff
mov dword [esp + 0x10], ebx
jg 0x511c38
xor eax, eax
jmp 0x511d34
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x511cc9
test ebp, ebp
jle 0x511c6b
jmp 0x511c50
mov cx, word [edi + ebp*2]
call fcn.00558800
test eax, eax
je 0x511c63
dec ebp
inc ebx
test ebp, ebp
jg 0x511c50
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov ecx, dword [esp + 0x54]
lea eax, [ebx + ebp]
lea esi, [eax + 1]
cmp esi, ecx
jge 0x511ca1
lea edi, [edi + eax*2 + 2]
lea ecx, [ecx]
mov cx, word [edi]
call fcn.00558800
test eax, eax
je 0x511c99
mov eax, dword [esp + 0x54]
inc ebx
add edi, 2
inc esi
cmp esi, eax
jl 0x511c80
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x10], ebx
lea eax, [ebx + ebp + 1]
cmp eax, 0xffffffff
jne 0x511cb1
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x34]
push ecx
push eax
push edi
push edx
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
mov eax, dword [esp + 0x34]
jmp 0x511d30
test ebp, ebp
jle 0x511cf7
lea ecx, [ecx]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
add ecx, dword [esp + 0x50]
push ebp
push ecx
call fcn.005946b3
add esp, 8
cmp eax, 2
jne 0x511cef
dec ebp
inc ebx
test ebp, ebp
jg 0x511cd0
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0x48]
mov ecx, dword [edx]
mov esi, dword [esp + 0x50]
lea eax, [ebx + ebp + 1]
add ecx, esi
cmp eax, 0xffffffff
jne 0x511d1a
mov eax, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x511d11
sub eax, esi
lea edx, [esp + 0x3c]
push edx
push eax
mov eax, dword [esp + 0x34]
push ecx
push eax
call dword [sym.imp.GDI32.dll_GetTextExtentPointA]
mov eax, dword [esp + 0x3c]
sub eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x24]
cmp edx, 0xffffffff
je 0x511f75
cmp dword [esp + 0x18], 0xffffffff
je 0x511f75
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x78]
add ecx, eax
sub edx, eax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x5c], edi
jg 0x511e19
mov eax, dword [esp + 0x64]
add eax, ebx
cmp eax, edi
jle 0x511e19
mov esi, dword [esp + 0x74]
cmp dword [esp + 0x5c], esi
jg 0x511dab
cmp eax, esi
jle 0x511dab
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x70]
cmp edi, esi
lea ebx, [ecx + edx]
jge 0x511da0
cmp ebx, edi
jle 0x511dbe
cmp ecx, esi
jmp 0x511e78
cmp ebx, esi
jle 0x511dbe
cmp ecx, edi
jmp 0x511e78
cmp edi, esi
jge 0x511e13
mov edi, dword [esp + 0x68]
lea esi, [ecx + edx]
cmp esi, edi
jg 0x511e7e
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
dec ebp
cmp ebp, 0xffffffff
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], ebp
jge 0x511c26
pop edi
pop esi
pop ebx
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x18]
add ecx, 0xdc4
push ecx
mov ecx, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x24]
push eax
call fcn.00511a30
mov eax, 1
pop ebp
add esp, 0x34
ret 0x44
cmp ecx, dword [esp + 0x68]
jmp 0x511e78
mov esi, dword [esp + 0x74]
mov eax, dword [esp + 0x5c]
cmp eax, esi
jg 0x511e4e
mov eax, dword [esp + 0x64]
add eax, ebx
cmp eax, esi
jle 0x511e4a
cmp edi, esi
jge 0x511e39
cmp ecx, dword [esp + 0x70]
jmp 0x511e78
mov edi, dword [esp + 0x70]
lea esi, [ecx + edx]
cmp esi, edi
jle 0x511dbe
jmp 0x511e7e
mov eax, dword [esp + 0x5c]
cmp edi, esi
jge 0x511e68
cmp eax, edi
jl 0x511dbe
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x74]
add eax, ebx
cmp eax, esi
jmp 0x511e78
cmp eax, esi
jl 0x511dbe
mov eax, dword [esp + 0x64]
add eax, ebx
cmp eax, edi
jg 0x511dbe
mov ebx, dword [esp + 0x84]
mov edi, dword [ebx + 4]
cmp edi, 0x270f
je 0x511f4d
mov ebp, dword [ebx + 0xc]
cmp ebp, 0xffffd8f1
je 0x511f49
mov esi, dword [ebx]
cmp esi, 0x270f
je 0x511f49
mov ebx, dword [ebx + 8]
cmp ebx, 0xffffd8f1
je 0x511f42
cmp edi, dword [esp + 0x5c]
jne 0x511ed5
cmp esi, ecx
jle 0x511ee9
mov esi, dword [esp + 0x84]
mov dword [esi], ecx
jmp 0x511ee9
mov esi, dword [esp + 0x5c]
cmp edi, esi
jle 0x511ee9
mov edi, dword [esp + 0x84]
mov dword [edi + 4], esi
mov dword [edi], ecx
cmp ebp, eax
jne 0x511f00
lea eax, [ecx + edx]
cmp ebx, eax
jge 0x511f11
mov ecx, dword [esp + 0x84]
mov dword [ecx + 8], eax
jmp 0x511f11
jge 0x511f11
mov esi, dword [esp + 0x84]
add ecx, edx
mov dword [esi + 0xc], eax
mov dword [esi + 8], ecx
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x20]
jge 0x511f1f
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
add eax, edx
cmp eax, ecx
jle 0x511dc2
mov dword [esp + 0x1c], eax
jmp 0x511dc2
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x5c]
mov dword [ebx], ecx
add ecx, edx
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0xc], eax
mov eax, dword [esp + 0x18]
add ecx, eax
mov dword [ebx + 4], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
jmp 0x511dbe
mov dword [esp + 0x24], eax
jmp 0x511dc2