Function at 0x10055190
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x50
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov byte [esp + 0x34], 0xe8
xor ebp, ebp
mov dword [esp + 0x35], 0
lea edx, [esp + 0x44]
mov byte [esp + 0x2c], 0xe9
mov dword [esp + 0x2d], 0
mov esi, dword [edi]
mov ecx, esi
mov eax, dword [edi + 8]
mov word [esp + 0x3c], 0x800f
mov dword [esp + 0x3e], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebp
mov dword [edi + 0xc], ebp
mov dword [edi + 0x10], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x14], eax
call fcn.10054240
test dword [esp + 0x5c], 0x1000
mov ebx, eax
jne 0x10055441
nop dword [eax + eax]
mov dl, byte [esp + 0x12]
mov ecx, esi
mov dword [esp + 0x24], ecx
cmp dl, 5
jb 0x10055242
mov eax, esi
mov dword [esp + 0x18], 1
sub eax, dword [esp + 0x14]
lea ecx, [esp + 0x2c]
sub eax, 5
mov ebx, 5
mov dword [esp + 0x2d], eax
jmp 0x1005539c
mov dl, byte [esp + 0x4a]
cmp dl, 0xe8
jne 0x10055275
mov dh, byte [esp + 0x44]
lea ecx, [esp + 0x34]
mov dl, byte [esp + 0x12]
mov ebx, 5
movzx eax, dh
sub eax, dword [esp + 0x14]
add eax, 0xfffffffb
add eax, dword [esp + 0x54]
add eax, esi
mov dword [esp + 0x35], eax
jmp 0x100553a0
mov al, dl
and al, 0xfd
cmp al, 0xe9
jne 0x100552e7
mov dh, byte [esp + 0x44]
movzx ecx, dh
add ecx, esi
cmp dl, 0xeb
jne 0x10055294
movsx eax, byte [esp + 0x54]
add ecx, eax
jmp 0x10055298
add ecx, dword [esp + 0x54]
mov eax, dword [edi]
cmp eax, ecx
ja 0x100552c1
add eax, 5
cmp ecx, eax
jae 0x100552c1
cmp dword [esp + 0x20], ecx
mov ebp, ecx
mov ecx, dword [esp + 0x24]
cmovae ebp, dword [esp + 0x20]
mov dl, byte [esp + 0x12]
mov dword [esp + 0x1c], ebp
jmp 0x100553a0
sub ecx, dword [esp + 0x14]
mov ebx, 5
mov dl, byte [esp + 0x12]
sub ecx, 5
cmp esi, ebp
mov dword [esp + 0x2d], ecx
lea ecx, [esp + 0x2c]
sbb eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x100553a0
mov dh, byte [esp + 0x4b]
mov ah, dl
and ah, 0xf0
cmp ah, 0x70
je 0x10055320
mov al, dl
and al, 0xfc
cmp al, 0xe0
je 0x10055320
mov al, dh
and al, 0xf0
cmp al, 0x80
je 0x10055320
and dl, 0xfe
cmp dl, 0xc2
mov dl, byte [esp + 0x12]
jne 0x1005539c
cmp esi, ebp
sbb eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x1005539c
mov al, byte [esp + 0x44]
movzx ecx, al
add ecx, esi
cmp ah, 0x70
je 0x1005533c
mov al, dl
and al, 0xfc
cmp al, 0xe0
je 0x1005533c
add ecx, dword [esp + 0x54]
jmp 0x10055343
movsx eax, byte [esp + 0x54]
add ecx, eax
mov eax, dword [edi]
cmp eax, ecx
ja 0x10055365
add eax, 5
cmp ecx, eax
jae 0x10055365
cmp dword [esp + 0x20], ecx
mov ebp, ecx
mov ecx, dword [esp + 0x24]
cmovae ebp, dword [esp + 0x20]
mov dword [esp + 0x1c], ebp
jmp 0x10055398
mov al, dl
and al, 0xfc
cmp al, 0xe0
je 0x10055441
movzx eax, dl
cmp dl, 0xf
jne 0x1005537c
movzx eax, dh
sub ecx, dword [esp + 0x14]
and al, 0xf
or al, 0x80
mov ebx, 6
sub ecx, 6
mov byte [esp + 0x3d], al
mov dword [esp + 0x3e], ecx
lea ecx, [esp + 0x3c]
mov dl, byte [esp + 0x12]
mov dh, byte [esp + 0x44]
cmp esi, ebp
jae 0x100553af
movzx eax, dh
cmp ebx, eax
jne 0x10055441
mov eax, dword [esp + 0x28]
add eax, ebx
cmp eax, 0x20
ja 0x10055441
mov eax, dword [edi + 0x10]
cmp eax, 8
jae 0x10055441
mov byte [eax + edi + 0x14], dl
mov eax, dword [edi + 0x10]
mov dl, byte [esp + 0x13]
push ebx
push ecx
mov byte [eax + edi + 0x1c], dl
mov ebp, dword [edi + 8]
inc dword [edi + 0x10]
movzx eax, dl
add eax, ebp
push eax
call sub.VCRUNTIME140.dll_memcpy
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov ch, byte [esp + 0x12]
add cl, bl
add ch, byte [esp + 0x44]
cmp dword [esp + 0x18], 0
mov byte [esp + 0x13], cl
mov byte [esp + 0x12], ch
jne 0x1005544b
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x44]
mov dword [esp + 0x20], eax
movzx eax, cl
movzx esi, ch
add esi, dword [edi]
mov dword [esp + 0x28], eax
mov ecx, esi
add eax, ebp
mov dword [esp + 0x14], eax
call fcn.10054240
test dword [esp + 0x5c], 0x1000
mov ebx, eax
mov ebp, dword [esp + 0x1c]
je 0x10055210
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x50
ret
cmp ch, 5
jae 0x1005552d
mov ebp, dword [edi]
movzx ebx, ch
mov cl, byte [ebx + ebp]
lea edx, [ebx + ebp]
test cl, cl
je 0x1005546d
cmp cl, 0x90
je 0x1005546d
cmp cl, 0xcc
jne 0x10055498
mov esi, 5
mov eax, 1
sub esi, ebx
cmp esi, eax
jbe 0x1005552d
cmp byte [edx + eax], cl
jne 0x10055498
inc eax
cmp eax, esi
jb 0x10055481
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret
cmp ch, 2
jae 0x100554ce
test cl, cl
je 0x100554ab
cmp cl, 0x90
je 0x100554ab
cmp cl, 0xcc
jne 0x10055441
mov esi, 2
mov eax, 1
sub esi, ebx
cmp esi, eax
jbe 0x100554ce
nop dword [eax + eax]
cmp byte [edx + eax], cl
jne 0x10055441
inc eax
cmp eax, esi
jb 0x100554c0
push 0x1c
lea eax, [esp + 0x48]
push eax
lea eax, [ebp - 5]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualQuery]
cmp dword [esp + 0x54], 0x1000
jne 0x10055441
test byte [esp + 0x58], 0xf0
je 0x10055441
mov eax, dword [edi]
mov dl, byte [eax - 5]
test dl, dl
je 0x1005550f
cmp dl, 0x90
je 0x1005550f
cmp dl, 0xcc
jne 0x10055441
mov ecx, 1
add eax, 0xfffffffc
cmp byte [eax], dl
jne 0x10055441
inc ecx
inc eax
cmp ecx, 5
jb 0x10055517
mov dword [edi + 0xc], 1
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x50
ret