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

Disassembly:
sub esp, 0x70
push ebx
mov ebx, ecx
mov dword [esp + 0x40], edx
mov ecx, dword [edx]
push ebp
push esi
push edi
mov edi, dword [ebx]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x84]
mov ebp, dword [ebx]
mov dword [esp + 0x18], ecx
mov al, byte [ecx]
mov edx, SysReAllocString
test al, al
jne 0x101a58ba
cmp byte [ebp], al
je 0x101a5c53
mov ebx, edx
jmp 0x101a58f4
cmp al, 1
jne 0x101a58f2
mov al, byte [ecx + 1]
inc ecx
test al, al
jns 0x101a58da
lea edx, [esp + 0x28]
call fcn.101a2fa0
mov ebx, dword [esp + 0x28]
mov edx, SysReAllocString
jmp 0x101a58e1
movzx ebx, al
mov dword [esp + 0x28], ebx
test ebx, ebx
jne 0x101a58f8
mov eax, 0x10b
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov cl, byte [ebp]
cmp cl, 1
jne 0x101a5926
mov al, byte [ebp + 1]
lea ecx, [ebp + 1]
test al, al
jns 0x101a5919
lea edx, [esp + 0x2c]
call fcn.101a2fa0
mov eax, dword [esp + 0x2c]
jmp 0x101a5920
movzx eax, al
mov dword [esp + 0x2c], eax
test eax, eax
je 0x101a58e5
jmp 0x101a5931
xor eax, eax
test cl, cl
cmove eax, edx
mov dword [esp + 0x2c], eax
cmp ebx, eax
jne 0x101a5b6c
xorps xmm0, xmm0
xor esi, esi
movlpd qword [esp + 0x38], xmm0
test ebx, ebx
je 0x101a5976
mov eax, ebx
lea esi, [edi + 1]
cdq
mov ecx, eax
mov bl, cl
shrd ecx, edx, 7
or bl, 0x80
mov byte [esi], bl
mov eax, ecx
shr edx, 7
inc esi
or eax, edx
jne 0x101a5950
and bl, 0x7f
lea eax, [edi + 1]
mov byte [esi - 1], bl
sub esi, eax
inc esi
mov byte [edi], 1
add edi, esi
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x50]
add ebx, esi
add ebp, esi
mov ecx, ebx
call fcn.101a2de0
mov esi, dword [esp + 0x54]
lea edx, [esp + 0x58]
add ebx, eax
mov ecx, ebp
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x24], ebx
call fcn.101a2de0
mov edx, dword [esp + 0x58]
add ebp, eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x5c]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x34], eax
cmp esi, ebp
jg 0x101a59e0
jl 0x101a59d2
cmp ebx, edx
jae 0x101a59e0
mov eax, ebx
mov ecx, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ecx
jmp 0x101a59ec
mov eax, edx
mov dword [esp + 0x30], edx
mov ecx, ebp
mov dword [esp + 0x38], ebp
mov edx, eax
mov eax, ecx
sub edx, dword [esp + 0x34]
sbb eax, dword [esp + 0x44]
nop dword [eax + eax]
mov bl, dl
shrd edx, eax, 7
or bl, 0x80
mov byte [edi], bl
mov ecx, edx
shr eax, 7
inc edi
or ecx, eax
jne 0x101a5a00
mov eax, dword [esp + 0x30]
and bl, 0x7f
mov edx, dword [esp + 0x1c]
sub eax, 2
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x38]
mov byte [edi - 1], bl
sbb eax, ecx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x44], eax
cmp ebx, edx
jne 0x101a5aaf
cmp esi, ebp
jne 0x101a5ab1
mov eax, dword [esp + 0x18]
test byte [eax], 0xfe
je 0x101a5a6c
lea edx, [esp + 0x60]
mov ecx, eax
call fcn.101a2de0
add dword [esp + 0x18], eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
sub ecx, 2
sbb eax, 0
add ebx, ecx
adc esi, eax
jmp 0x101a5a74
or ebx, 0xffffffff
mov esi, SysReAllocString
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], ebx
test byte [eax], 0xfe
je 0x101a5b29
lea edx, [esp + 0x68]
mov ecx, eax
call fcn.101a2de0
add dword [esp + 0x20], eax
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
sub ecx, 2
mov edx, dword [esp + 0x1c]
sbb eax, 0
add edx, ecx
adc ebp, eax
jmp 0x101a5b31
cmp esi, ebp
jg 0x101a5af9
jl 0x101a5ab9
cmp ebx, edx
jae 0x101a5af9
mov ecx, dword [esp + 0x18]
test byte [ecx], 0xfe
je 0x101a5aeb
lea edx, [esp + 0x70]
call fcn.101a2de0
add dword [esp + 0x18], eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
sub ecx, 2
mov edx, dword [esp + 0x1c]
sbb eax, 0
add ebx, ecx
mov dword [esp + 0x24], ebx
adc esi, eax
jmp 0x101a5b35
or ebx, 0xffffffff
mov esi, SysReAllocString
mov dword [esp + 0x24], ebx
jmp 0x101a5b4e
mov eax, dword [esp + 0x20]
test byte [eax], 0xfe
je 0x101a5b29
lea edx, [esp + 0x78]
mov ecx, eax
call fcn.101a2de0
add dword [esp + 0x20], eax
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x7c]
sub ecx, 2
mov edx, dword [esp + 0x1c]
sbb eax, 0
add edx, ecx
adc ebp, eax
jmp 0x101a5b31
mov ebp, SysReAllocString
or edx, 0xffffffff
mov dword [esp + 0x1c], edx
cmp ebx, 0xffffffff
jne 0x101a59c8
cmp esi, 0x7fffffff
jne 0x101a59c8
mov ecx, dword [esp + 0x18]
cmp edx, 0xffffffff
jne 0x101a59c8
cmp ebp, 0x7fffffff
jne 0x101a59c8
mov ebp, dword [esp + 0x20]
jmp 0x101a58a2
jge 0x101a5be1
xor ecx, ecx
test ebx, ebx
je 0x101a5ba9
mov eax, ebx
lea esi, [edi + 1]
cdq
mov ecx, esi
mov ebx, eax
nop
mov al, bl
or al, 0x80
shrd ebx, edx, 7
mov byte [ecx], al
inc ecx
mov byte [esp + 0x17], al
mov eax, ebx
shr edx, 7
or eax, edx
jne 0x101a5b80
mov al, byte [esp + 0x17]
and al, 0x7f
mov byte [ecx - 1], al
sub ecx, esi
inc ecx
mov byte [edi], 1
add edi, ecx
mov edx, dword [esp + 0x18]
add edx, ecx
mov ebx, edx
mov ah, byte [edx]
test ah, 0xfe
je 0x101a5bc9
mov cl, byte [ebx + 1]
inc ebx
mov al, ah
mov ah, cl
and al, 0x80
or cl, al
test cl, 0xfe
jne 0x101a5bb8
mov esi, ebx
sub esi, edx
push esi
push edx
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, ebx
add edi, esi
jmp 0x101a589e
xor ecx, ecx
test eax, eax
je 0x101a5c19
lea esi, [edi + 1]
cdq
mov ecx, esi
mov ebx, eax
nop
mov al, bl
or al, 0x80
shrd ebx, edx, 7
mov byte [ecx], al
inc ecx
mov byte [esp + 0x17], al
mov eax, ebx
shr edx, 7
or eax, edx
jne 0x101a5bf0
mov al, byte [esp + 0x17]
and al, 0x7f
mov byte [ecx - 1], al
sub ecx, esi
inc ecx
mov byte [edi], 1
add edi, ecx
mov dl, byte [ebp + ecx]
add ebp, ecx
mov ebx, ebp
test dl, 0xfe
je 0x101a5c37
mov cl, byte [ebx + 1]
inc ebx
mov al, dl
mov dl, cl
and al, 0x80
or cl, al
test cl, 0xfe
jne 0x101a5c26
mov esi, ebx
sub esi, ebp
push esi
push ebp
push edi
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x24]
add esp, 0xc
add edi, esi
mov ebp, ebx
jmp 0x101a58a2
mov edx, dword [esp + 0x48]
lea eax, [edi + 1]
mov byte [edi], 0
pop edi
pop esi
mov dword [edx], eax
lea eax, [ecx + 1]
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
lea eax, [ebp + 1]
mov ecx, dword [esp + 0x7c]
pop ebp
pop ebx
mov dword [ecx], eax
xor eax, eax
add esp, 0x70
ret