Function at 0x100534b0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x10269840]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor al, al
xor cl, cl
mov byte [ebp - 0x1c], 0xe8
push edi
mov dword [ebp - 0x1b], 0
mov byte [ebp - 0xc], 0xe9
mov dword [ebp - 0xb], 0
mov word [ebp - 0x14], 0x800f
mov dword [ebp - 0x12], 0
mov byte [ebp - 0x39], al
mov byte [ebp - 0x3a], cl
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x48], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
nop
movzx edi, al
mov eax, dword [esi + 8]
add edi, dword [esi]
movzx ecx, cl
add eax, ecx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x38]
push eax
push edi
call fcn.10052480
add esp, 8
mov ebx, eax
test dword [ebp - 0x20], 0x1000
mov dword [ebp - 0x50], ebx
jne 0x100537a9
mov dl, byte [ebp - 0x39]
mov ecx, edi
mov dword [ebp - 0x4c], ecx
cmp dl, 5
jb 0x1005356e
mov eax, edi
mov dword [ebp - 0x48], 1
sub eax, dword [ebp - 0x44]
lea ecx, [ebp - 0xc]
sub eax, 5
mov ebx, 5
mov dword [ebp - 0xb], eax
jmp 0x100536aa
mov dl, byte [ebp - 0x32]
cmp dl, 0xe8
jne 0x1005359a
mov dh, byte [ebp - 0x38]
lea ecx, [ebp - 0x1c]
mov dl, byte [ebp - 0x39]
mov ebx, 5
movzx eax, dh
sub eax, dword [ebp - 0x44]
add eax, 0xfffffffb
add eax, dword [ebp - 0x28]
add eax, edi
mov dword [ebp - 0x1b], eax
jmp 0x100536ad
mov al, dl
and al, 0xfd
cmp al, 0xe9
jne 0x10053602
mov dh, byte [ebp - 0x38]
movzx ecx, dh
add ecx, edi
cmp dl, 0xeb
jne 0x100535b7
movsx eax, byte [ebp - 0x28]
add ecx, eax
jmp 0x100535ba
add ecx, dword [ebp - 0x28]
mov eax, dword [esi]
cmp eax, ecx
ja 0x100535de
add eax, 5
cmp ecx, eax
jae 0x100535de
cmp dword [ebp - 0x40], ecx
mov dl, byte [ebp - 0x39]
cmovae ecx, dword [ebp - 0x40]
mov eax, ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x40], eax
jmp 0x100536b0
sub ecx, dword [ebp - 0x44]
mov ebx, 5
mov eax, dword [ebp - 0x40]
sub ecx, 5
mov dl, byte [ebp - 0x39]
cmp edi, eax
mov dword [ebp - 0xb], ecx
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x48], ecx
lea ecx, [ebp - 0xc]
jmp 0x100536b0
mov dh, byte [ebp - 0x31]
mov bl, dl
and bl, 0xf0
cmp bl, 0x70
je 0x1005363b
mov al, dl
and al, 0xfc
cmp al, 0xe0
je 0x1005363b
mov al, dh
and al, 0xf0
cmp al, 0x80
je 0x1005363b
mov ebx, dword [ebp - 0x50]
and dl, 0xfe
cmp dl, 0xc2
mov dl, byte [ebp - 0x39]
jne 0x100536aa
cmp edi, dword [ebp - 0x40]
sbb ecx, ecx
inc ecx
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x100536aa
movzx ecx, byte [ebp - 0x38]
add ecx, edi
cmp bl, 0x70
je 0x10053653
mov al, dl
and al, 0xfc
cmp al, 0xe0
je 0x10053653
add ecx, dword [ebp - 0x28]
jmp 0x10053659
movsx eax, byte [ebp - 0x28]
add ecx, eax
mov eax, dword [esi]
cmp eax, ecx
ja 0x10053678
add eax, 5
cmp ecx, eax
jae 0x10053678
cmp dword [ebp - 0x40], ecx
mov ebx, dword [ebp - 0x50]
cmovae ecx, dword [ebp - 0x40]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0x4c]
jmp 0x100536a7
mov al, dl
and al, 0xfc
cmp al, 0xe0
je 0x100537a9
movzx eax, dl
cmp dl, 0xf
jne 0x1005368f
movzx eax, dh
sub ecx, dword [ebp - 0x44]
and al, 0xf
or al, 0x80
mov ebx, 6
sub ecx, 6
mov byte [ebp - 0x13], al
mov dword [ebp - 0x12], ecx
lea ecx, [ebp - 0x14]
mov dl, byte [ebp - 0x39]
mov dh, byte [ebp - 0x38]
mov eax, dword [ebp - 0x40]
cmp edi, eax
jae 0x100536bf
movzx eax, dh
cmp ebx, eax
jne 0x100537a9
mov edi, dword [ebp - 0x54]
lea eax, [edi + ebx]
cmp eax, 0x20
ja 0x100537a9
mov eax, dword [esi + 0x10]
cmp eax, 8
jae 0x100537a9
mov byte [eax + esi + 0x14], dl
mov eax, dword [esi + 0x10]
mov dl, byte [ebp - 0x3a]
push ebx
push ecx
mov byte [eax + esi + 0x1c], dl
mov eax, dword [esi + 8]
inc dword [esi + 0x10]
add eax, edi
push eax
call sub.VCRUNTIME140.dll_memcpy
mov cl, byte [ebp - 0x3a]
add esp, 0xc
mov al, byte [ebp - 0x39]
add cl, bl
add al, byte [ebp - 0x38]
cmp dword [ebp - 0x48], 0
mov byte [ebp - 0x3a], cl
mov byte [ebp - 0x39], al
je 0x10053510
cmp al, 5
jae 0x10053793
mov ebx, dword [esi]
movzx edi, al
mov eax, 5
sub eax, edi
push eax
lea ecx, [ebx + edi]
push ecx
call fcn.100537c0
add esp, 8
test eax, eax
jne 0x10053793
cmp byte [ebp - 0x39], 2
jae 0x10053755
mov eax, 2
sub eax, edi
push eax
lea eax, [ebx + edi]
push eax
call fcn.100537c0
add esp, 8
test eax, eax
je 0x100537a9
lea eax, [ebx - 5]
push eax
call fcn.10052420
add esp, 4
test eax, eax
je 0x100537a9
mov edx, dword [esi]
mov cl, byte [edx - 5]
test cl, cl
je 0x10053778
cmp cl, 0x90
je 0x10053778
cmp cl, 0xcc
jne 0x100537a9
mov eax, 1
nop dword [eax]
cmp byte [eax + edx - 5], cl
jne 0x100537a9
inc eax
cmp eax, 5
jb 0x10053780
mov dword [esi + 0xc], 1
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101044f3
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101044f3
mov esp, ebp
pop ebp
ret