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

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
test byte [ebx + 4], 2
mov edi, dword [ebp + 0x10]
je 0x4b304c
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 4
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi], ecx
add dword [esi + 4], 4
test byte [ebx + 4], 8
je 0x4b30b2
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 4], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 8], edx
add dword [esi + 4], 4
test byte [ebx + 4], 0x10
je 0x4b30d4
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
movzx eax, byte [ecx]
mov dword [edi + 0xc], eax
inc dword [esi + 4]
test byte [ebx + 4], 4
je 0x4b30ef
lea eax, [edi + 0x10]
push eax
push esi
call sym.wfreerdp.exe_rail_read_unicode_string
add esp, 8
test eax, eax
je 0x4b349b
test dword [ebx + 4], 0x4000
je 0x4b3158
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x18], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x1c], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x10000
je 0x4b31c1
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x20], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x24], edx
add dword [esi + 4], 4
test byte [ebx + 4], 0x80
je 0x4b3227
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x58], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x60], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x8000000
je 0x4b3290
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x5c], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x64], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x20000
je 0x4b32b5
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
movzx eax, byte [ecx]
mov dword [edi + 0x28], eax
inc dword [esi + 4]
test dword [ebx + 4], 0x40000
je 0x4b32f6
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 4
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x2c], ecx
add dword [esi + 4], 4
test dword [ebx + 4], 0x800
je 0x4b335f
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x30], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x34], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x8000
je 0x4b33c8
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x38], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x3c], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x400
je 0x4b3431
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x40], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x44], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x100
mov dword [ebp + 0xc], 0x100
je 0x4b353d
mov eax, dword [esi]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi + 8]
cmp eax, 2
jb 0x4b349b
movzx eax, byte [edx + 1]
shl ax, 8
movzx ecx, ax
movzx eax, byte [edx]
add ecx, eax
mov dword [edi + 0x48], ecx
add dword [esi + 4], 2
mov eax, dword [edi + 0x48]
test eax, eax
je 0x4b377d
shl eax, 3
push eax
push dword [edi + 0x4c]
call fcn.00580d5f
add esp, 8
test eax, eax
jne 0x4b34a2
push dword [edi + 0x4c]
call fcn.00580204
add esp, 4
mov dword [edi + 0x4c], 0
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
mov dword [edi + 0x4c], eax
mov ecx, dword [esi]
sub ecx, dword [esi + 4]
mov eax, dword [edi + 0x48]
add ecx, dword [esi + 8]
shl eax, 3
cmp ecx, eax
jb 0x4b349b
xor edx, edx
cmp dword [edi + 0x48], edx
jbe 0x4b353d
mov edi, edi
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
imul cx, word [ebp + 0xc]
add cx, ax
mov eax, dword [edi + 0x4c]
mov word [eax + edx*8], cx
add dword [esi + 4], 2
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
imul cx, word [ebp + 0xc]
add cx, ax
mov eax, dword [edi + 0x4c]
mov word [eax + edx*8 + 2], cx
add dword [esi + 4], 2
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
imul cx, word [ebp + 0xc]
movzx eax, byte [eax]
add cx, ax
mov eax, dword [edi + 0x4c]
mov word [eax + edx*8 + 4], cx
add dword [esi + 4], 2
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
imul cx, word [ebp + 0xc]
movzx eax, byte [eax]
add cx, ax
mov eax, dword [edi + 0x4c]
mov word [eax + edx*8 + 6], cx
inc edx
add dword [esi + 4], 2
cmp edx, dword [edi + 0x48]
jb 0x4b34c0
test dword [ebx + 4], 0x1000
je 0x4b35a6
mov eax, dword [esi + 8]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi]
cmp eax, 8
jb 0x4b349b
movzx ecx, byte [edx + 3]
movzx eax, byte [edx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
add ecx, eax
movzx eax, byte [edx]
shl ecx, 8
add ecx, eax
mov dword [edi + 0x50], ecx
add dword [esi + 4], 4
mov ecx, dword [esi + 4]
movzx edx, byte [ecx + 3]
movzx eax, byte [ecx + 2]
shl edx, 8
add edx, eax
movzx eax, byte [ecx + 1]
shl edx, 8
add edx, eax
movzx eax, byte [ecx]
shl edx, 8
add edx, eax
mov dword [edi + 0x54], edx
add dword [esi + 4], 4
test dword [ebx + 4], 0x200
je 0x4b36b1
mov eax, dword [esi]
mov edx, dword [esi + 4]
sub eax, edx
add eax, dword [esi + 8]
cmp eax, 2
jb 0x4b349b
movzx eax, byte [edx + 1]
shl ax, 8
movzx ecx, ax
movzx eax, byte [edx]
add ecx, eax
mov dword [edi + 0x68], ecx
add dword [esi + 4], 2
mov eax, dword [edi + 0x68]
test eax, eax
je 0x4b36b1
shl eax, 3
push eax
push dword [edi + 0x6c]
call fcn.00580d5f
add esp, 8
test eax, eax
jne 0x4b3614
push dword [edi + 0x6c]
call fcn.00580204
add esp, 4
mov dword [edi + 0x6c], 0
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret
mov dword [edi + 0x6c], eax
mov ecx, dword [esi]
sub ecx, dword [esi + 4]
mov eax, dword [edi + 0x68]
add ecx, dword [esi + 8]
shl eax, 3
cmp ecx, eax
jb 0x4b349b
xor edx, edx
cmp dword [edi + 0x68], edx
jbe 0x4b36b1
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
imul cx, word [ebp + 0xc]
add cx, ax
mov eax, dword [edi + 0x6c]
mov word [eax + edx*8], cx
add dword [esi + 4], 2
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax]
imul cx, word [ebp + 0xc]
add cx, ax
mov eax, dword [edi + 0x6c]
mov word [eax + edx*8 + 2], cx
add dword [esi + 4], 2
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
imul cx, word [ebp + 0xc]
movzx eax, byte [eax]
add cx, ax
mov eax, dword [edi + 0x6c]
mov word [eax + edx*8 + 4], cx
add dword [esi + 4], 2
mov eax, dword [esi + 4]
movzx ecx, byte [eax + 1]
imul cx, word [ebp + 0xc]
movzx eax, byte [eax]
add cx, ax
mov eax, dword [edi + 0x6c]
mov word [eax + edx*8 + 6], cx
inc edx
add dword [esi + 4], 2
cmp edx, dword [edi + 0x68]
jb 0x4b3634
test dword [ebx + 4], 0x400000
je 0x4b36cf
lea eax, [edi + 0x70]
push eax
push esi
call sym.wfreerdp.exe_rail_read_unicode_string
add esp, 8
test eax, eax
je 0x4b349b
test dword [ebx + 4], 0x200000
je 0x4b36f3
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
mov al, byte [ecx]
mov byte [edi + 0x78], al
inc dword [esi + 4]
test dword [ebx + 4], 0x800000
je 0x4b3717
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
mov al, byte [ecx]
mov byte [edi + 0x78], al
inc dword [esi + 4]
test dword [ebx + 4], 0x80000
je 0x4b373b
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
mov al, byte [ecx]
mov byte [edi + 0x79], al
inc dword [esi + 4]
test byte [ebx + 4], 0x40
je 0x4b375c
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
mov al, byte [ecx]
mov byte [edi + 0x7a], al
inc dword [esi + 4]
test byte [ebx + 4], 1
je 0x4b377d
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
sub eax, ecx
add eax, dword [esi]
cmp eax, 1
jb 0x4b349b
mov al, byte [ecx]
mov byte [edi + 0x7b], al
inc dword [esi + 4]
pop edi
pop esi
mov eax, 1
pop ebx
pop ebp
ret