Function at 0x10042be9
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10315801
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x58
mov eax, dword [0x1043900c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], 0
cmp edx, 0xa
ja case.0x100427a6.9
jmp dword [edx*4 + 0x100436fc]
mov dword [ebp - 4], 0
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 9
mov byte [esi], 0
mov dword [ebp - 0x64], 0x20
call fcn.1001a120
mov edi, 0x1036f41c
nop
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036f42a
jne 0x100427f0
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x1004281d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042869
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042884
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042886
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042850
jmp 0x100436d9
mov dword [ebp - 4], 1
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 6
mov byte [esi], 0
mov dword [ebp - 0x64], 0x40
call fcn.1001a120
mov edi, 0x1036f99c
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036f9a4
jne 0x10042900
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x1004292d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042979
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042994
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042996
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042960
jmp 0x100436d9
mov dword [ebp - 4], 2
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 7
mov byte [esi], 0
mov dword [ebp - 0x64], 0x80
call fcn.1001a120
mov edi, 0x1036f040
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036f04a
jne 0x10042a10
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x10042a3d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042a89
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042aa4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042aa6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042a70
jmp 0x100436d9
mov dword [ebp - 4], 3
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 9
mov byte [esi], 0
mov dword [ebp - 0x64], 0x100
call fcn.1001a120
mov edi, 0x1036f150
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036f15e
jne 0x10042b20
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x10042b4d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042b99
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042bb4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042bb6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042b80
jmp 0x100436d9
mov dword [ebp - 4], 4
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 0xa
mov byte [esi], 0
mov dword [ebp - 0x64], 0x200
call fcn.1001a120
mov edi, 0x1036eb58
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036eb68
jne 0x10042c30
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x10042c5d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042ca9
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042cc4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042cc6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042c90
jmp 0x100436d9
mov dword [ebp - 4], 5
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 0xb
mov byte [esi], 0
mov dword [ebp - 0x64], 0x400
call fcn.1001a120
mov edi, 0x1036f214
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036f226
jne 0x10042d40
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x10042d6d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042db9
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042dd4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042dd6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042da0
jmp 0x100436d9
mov dword [ebp - 4], 6
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 0xa
mov byte [esi], 0
mov dword [ebp - 0x64], 0x800
call fcn.1001a120
mov edi, 0x1036eaa4
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036eab4
jne 0x10042e50
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x10042e7d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042ec9
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042ee4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042ee6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042eb0
jmp 0x100436d9
mov dword [ebp - 4], 7
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 0xb
mov byte [esi], 0
mov dword [ebp - 0x64], 0x1000
call fcn.1001a120
mov edi, 0x1036fb80
nop word [eax + eax]
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036fb92
jne 0x10042f60
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x10042f8d
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop word [eax + eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x10042fd9
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x10042ff4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x10042ff6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x10042fc0
jmp 0x100436d9
cmp byte [0x104a6e00], 0
jne 0x100431dc
mov edx, dword [0x104a6e0c]
mov eax, dword [0x104a6e08]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x104a6e00], 1
mov dword [ebp - 0x60], eax
mov ecx, edx
shld ecx, eax, 0xd
mov edi, dword [ebp - 0x60]
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104a6e0c]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104a6e01]
xor al, cl
mov ecx, edx
mov byte [0x104a6e01], al
mov eax, dword [0x104a6e08]
xor eax, 0x1de26cd4
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104a6e0c]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104a6e02]
xor al, cl
mov ecx, edx
mov byte [0x104a6e02], al
mov eax, dword [0x104a6e08]
xor eax, 0x1de26cd7
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104a6e0c]
shl eax, 0x11
xor al, byte [0x104a6e03]
xor al, cl
mov byte [0x104a6e03], al
mov eax, dword [0x104a6e08]
xor eax, 0x1de26cd6
xor edx, 0xd28f2c5
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104a6e0c]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104a6e04]
xor al, cl
mov ecx, edx
mov byte [0x104a6e04], al
mov eax, dword [0x104a6e08]
xor eax, 0x1de26cd1
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
shl eax, 0x11
xor al, byte [0x104a6e05]
xor al, cl
mov byte [0x104a6e05], al
push ecx
push 0x104a6e05
push 0x104a6e01
lea ecx, [ebp - 0x2c]
call fcn.1001a620
mov dword [ebp - 4], 8
lea eax, [ebp - 0x2c]
cmp dword [ebp - 0x18], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x2c]
push eax
call fcn.10019eb0
lea ecx, [ebp - 0x2c]
jmp 0x100436d4
mov dword [ebp - 4], 9
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov ecx, esi
mov dword [esi + 0x14], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
push 6
mov byte [esi], 0
mov dword [ebp - 0x64], 0x8000
call fcn.1001a120
mov edi, 0x1036fd04
mov al, byte [edi]
mov ecx, esi
xor al, 0xa5
movzx eax, al
push eax
call fcn.1001a280
add edi, 2
cmp edi, 0x1036fd0c
jne 0x10043252
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x60], esi
jb 0x1004327f
mov eax, dword [esi]
mov dword [ebp - 0x60], eax
test edi, edi
je 0x100436d9
push edi
push 0
push eax
call sub.VCRUNTIME140.dll_memchr
mov edx, eax
add esp, 0xc
test edx, edx
je 0x100436d9
sub edx, dword [ebp - 0x60]
cmp edx, 0xffffffff
je 0x100436d9
nop dword [eax]
cmp dword [esi + 0x14], 0x10
mov ecx, 1
jb 0x100432c9
mov eax, edi
sub eax, edx
cmp eax, ecx
cmovb ecx, eax
mov dword [ebp - 0x60], ecx
jmp 0x100432e4
mov eax, esi
sub eax, esi
add edx, eax
mov eax, edi
sub eax, edx
cmp eax, 1
cmovb ecx, eax
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x60], ecx
mov eax, esi
jb 0x100432e6
mov eax, dword [esi]
sub edi, dword [ebp - 0x60]
lea ecx, [eax + edx]
mov eax, edi
sub eax, edx
inc eax
push eax
mov eax, dword [ebp - 0x60]
add eax, ecx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
add esp, 8
mov dword [esi + 0x10], edi
mov ecx, esi
push 0
call fcn.1001a0e0
mov edx, eax
cmp edx, 0xffffffff
jne 0x100432b0
jmp 0x100436d9
lea ecx, [ebp - 0x17]
test edx, edx
jns 0x1004332d
neg edx
call fcn.10032710
dec eax
mov byte [eax], 0x2d
jmp 0x10043332
call fcn.10032710
push ecx
lea ecx, [ebp - 0x17]
push ecx
push eax
lea ecx, [ebp - 0x5c]
call fcn.1001a620
mov dword [ebp - 4], 0xa
cmp byte [0x104935a0], 0
jne 0x10043699
mov edx, dword [0x104935b4]
mov eax, dword [0x104935b0]
xor edx, 0xd28f2c5
xor eax, 0x1de26cd5
mov byte [0x104935a0], 1
mov dword [ebp - 0x60], eax
mov ecx, edx
shld ecx, eax, 0xd
mov edi, dword [ebp - 0x60]
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a1]
xor al, cl
mov ecx, edx
mov byte [0x104935a1], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd4
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a2]
xor al, cl
mov ecx, edx
mov byte [0x104935a2], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd7
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor al, byte [0x104935a3]
xor al, cl
mov byte [0x104935a3], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd6
xor edx, 0xd28f2c5
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
mov ecx, edx
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a4]
xor al, cl
mov ecx, edx
mov byte [0x104935a4], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd1
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a5]
xor al, cl
mov ecx, edx
mov byte [0x104935a5], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd0
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a6]
xor al, cl
mov ecx, edx
mov byte [0x104935a6], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd3
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edi, eax
xor edx, ecx
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a7]
xor al, cl
mov ecx, edx
mov byte [0x104935a7], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cd2
mov dword [ebp - 0x60], eax
shld ecx, eax, 0xd
mov edi, dword [ebp - 0x60]
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a8]
xor al, cl
mov ecx, edx
mov byte [0x104935a8], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cdd
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
xor edi, eax
shr ecx, 7
xor edx, ecx
mov dword [ebp - 0x60], edi
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
mov edx, dword [0x104935b4]
shl eax, 0x11
xor edx, 0xd28f2c5
xor al, byte [0x104935a9]
xor al, cl
mov ecx, edx
mov byte [0x104935a9], al
mov eax, dword [0x104935b0]
xor eax, 0x1de26cdc
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x60]
shld ecx, eax, 0xd
shl eax, 0xd
xor edx, ecx
xor edi, eax
mov ecx, edx
mov eax, edi
shrd eax, ecx, 7
shr ecx, 7
xor edi, eax
mov dword [ebp - 0x60], edi
xor edx, ecx
mov ecx, edi
mov eax, ecx
shld edx, eax, 0x11
shl eax, 0x11
xor al, byte [0x104935aa]
xor al, cl
mov byte [0x104935aa], al
push ecx
push 0x104935aa
push 0x104935a1
lea ecx, [ebp - 0x44]
call fcn.1001a620
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x5c]
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
push eax
cmovae edx, dword [ebp - 0x44]
mov ecx, esi
call fcn.1006cf00
add esp, 4
lea ecx, [ebp - 0x44]
call fcn.10019dd0
lea ecx, [ebp - 0x5c]
call fcn.10019dd0
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.102bb91c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret