Function at 0x1000c490
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x4c]
movzx ebx, byte [eax + 0x15f1]
mov eax, dword [esp + 0x70]
dec eax
mov esi, dword [0x10053418]
mov dword [esp + 0x2c], eax
movzx eax, word [0x10053410]
mov dword [esp + 0x24], eax
movzx eax, byte [0x100533fe]
mov dword [esp + 0x20], eax
movzx eax, byte [0x1005340b]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov ax, word [0x1005343c]
inc ax
imul ebx, dword [0x100533e8]
mov word [0x1005343c], ax
movzx ecx, ax
mov eax, 0x26d56c5f
mul ecx
mov eax, ebp
mov byte [esp + 0x13], 0x5e
sub ecx, edx
mov dword [esp + 0x70], esi
shr ecx, 1
add ecx, edx
xor edx, edx
div dword [0x10053400]
shr ecx, 0xc
xor edx, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [0x10053424]
mov edi, dword [0x10053440]
or edi, 0x840
div dword [ecx*4 + 0x1cff]
movzx ecx, byte [0x1005340a]
xor edx, edx
add ecx, ecx
mov dword [esp + 0x14], edi
mov dword [esi + ecx*8], eax
mov eax, 0x5e
movzx ecx, byte [ebp + 0xbf2]
div ecx
mov byte [ebp + 0xbf2], al
mov eax, dword [esi]
mov ebp, dword [esp + 0x6c]
mov edx, dword [edi + eax*8]
mov edi, dword [esp + 0x74]
sub edx, 0xc
mov eax, dword [0x100533d4]
mov ecx, edi
add ecx, ecx
mov dword [eax + ecx*8], edx
mov ecx, dword [0x100533f4]
inc ecx
mov dword [0x100533f4], ecx
lea eax, [ecx + ecx*2]
movzx eax, word [ebp + eax*2]
cmp eax, 0x1d2
jb 0x1000c5a6
nop
mov word [ebp + ecx*8 + 4], bx
inc eax
dec ebx
cmp eax, 0x1d2
jl 0x1000c5a6
mov ecx, dword [0x100533f4]
jmp 0x1000c590
mov eax, dword [esp + 0x5c]
movzx edx, byte [eax + edi]
mov dword [esp + 0x18], edx
cmp edx, 0x5e
jg 0x1000c748
mov ecx, dword [esp + 0x2c]
lea esi, [esi + edx*8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x30], 0x5e
lea eax, [ecx + eax*4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
lea eax, [edi + edi*2]
lea eax, [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, edx
shl eax, 4
add eax, dword [esp + 0x2c]
add esi, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], esi
nop word [eax + eax]
mov eax, dword [0x100533d8]
inc eax
mov edi, dword [esp + 0x28]
mov dword [0x100533d8], eax
lea ecx, [eax*8]
mov ax, bx
sub ax, word [ecx + ebp + 0xe]
mov word [ecx + ebp + 0xe], ax
mov eax, dword [esp + 0x3c]
mov dword [0x100533ec], 0x1c5d
movzx ecx, word [ebp + edx*2]
mov eax, dword [eax]
cdq
idiv ecx
mov ecx, dword [esp + 0x18]
mov word [ebp + ecx*2], dx
mov eax, dword [0x10053424]
mov edx, dword [esp + 0x54]
lea edx, [edx + eax*2]
movzx eax, cx
movzx ecx, word [edx]
imul ecx, eax
mov word [edx], cx
mov ecx, dword [0x100533f4]
mov edi, dword [edi]
movzx eax, byte [ecx + 0xbf2]
or al, byte [esi]
movzx ebp, byte [ecx + 0xbff]
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x40], al
movzx eax, word [0x10053450]
sub edi, eax
mov eax, dword [0x100533dc]
mov esi, eax
dec eax
mov dword [0x100533dc], eax
lea eax, [ebx - 0x208]
push eax
mov eax, 0x46a3c4ad
imul ecx
push ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x1cfe
sub ecx, eax
push ecx
push esi
push edi
push ebp
push 0x2a5f
push dword [esp + 0x5c]
push dword [0x10053428]
call fcn.1000d740
mov ecx, dword [esp + 0x54]
add esp, 0x24
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
inc edi
mov dword [edx + ecx*4], eax
xor edx, edx
mov al, byte [esp + 0x13]
dec al
mov ecx, dword [0x10053434]
movzx ebp, al
dec ecx
mov byte [esp + 0x13], al
mov eax, 0x1bd1
div ebp
mov dword [0x10053434], ecx
mov eax, dword [esi + ecx*4]
mov ecx, dword [esp + 0x34]
add eax, edx
xor edx, edx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x74], edi
div dword [ecx]
mov dword [ecx], eax
add ecx, 0xc
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
inc edx
add dword [esp + 0x28], 0x10
add esi, 8
cmp edx, ebp
mov dword [esp + 0x34], ecx
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], esi
jle 0x1000c600
mov eax, dword [0x10053400]
mov esi, dword [esp + 0x50]
inc byte [esp + 0x13]
mov esi, dword [esi + eax*4]
dec eax
mov dword [0x10053400], eax
cmp esi, 0x42c
jne 0x1000c86e
mov al, byte [esp + 0x20]
mov ecx, dword [esp + 0x70]
or al, 0x86
mov edx, dword [esp + 0x1c]
add ecx, 0x10c4
mov byte [esp + 0x74], al
mov eax, edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x14]
shl eax, 4
add ecx, 4
add edx, eax
add eax, ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], eax
nop
mov edx, dword [edx]
add edi, 2
mov eax, dword [esp + 0x54]
xor edx, ebx
add dword [esp + 0x18], 0x20
movzx ecx, word [eax]
mov eax, dword [0x10053430]
mov dword [eax + ecx*4 + 0x14], edx
mov edx, dword [esp + 0x38]
movzx ecx, word [ebp + esi*2]
mov eax, dword [edx + 0x10]
add edx, 0x20
and eax, 0xe96
mov dword [esp + 0x38], edx
and ebx, eax
xor edx, edx
mov eax, dword [0x100533dc]
div ecx
mov ecx, dword [esp + 0x70]
mov word [ebp + esi*2], dx
movzx eax, byte [0x1005340a]
mov edx, dword [esp + 0x4c]
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x28]
add dword [esp + 0x28], 4
mov eax, dword [eax]
sub eax, esi
imul eax, dword [ecx]
mov dword [ecx], eax
movzx eax, byte [esi + edx]
movzx ecx, byte [esp + 0x74]
imul ecx, eax
mov eax, dword [esp + 0x14]
mov byte [esi + edx], cl
xor edx, edx
mov eax, dword [eax + esi*4]
mov ecx, 0x19fd
div ecx
mov ecx, dword [esp + 0x70]
mov eax, dword [ecx]
movzx ecx, byte [eax + 0xbf2]
mov eax, edx
xor edx, edx
div ecx
mov dl, byte [esp + 0x13]
or dl, al
movzx eax, dl
inc dl
mov byte [esp + 0x13], dl
mov edx, dword [esp + 0x18]
lea ecx, [eax*8]
mov ax, word [ebp + esi*8]
add word [ecx + ebp], ax
inc esi
cmp esi, 0x42c
je 0x1000c7a0
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x54]
mov ecx, 0xffff
mov ebp, dword [esp + 0x44]
xor edx, edx
movzx edi, byte [esp + 0x13]
add word [eax], cx
mov ax, word [eax]
mov esi, dword [0x100533f4]
movzx eax, ax
movzx ecx, byte [0x1005340b]
mov eax, dword [ebp + eax*4]
xor eax, esi
div dword [0x100533d8]
mov eax, edx
xor edx, edx
div ecx
mov ecx, dword [esp + 0x5c]
xor edx, edx
add ecx, dword [0x10053434]
mov byte [0x1005340b], al
movzx eax, byte [ebp + esi*4]
add al, 0x44
mov esi, dword [esp + 0x1c]
and byte [ecx + 7], al
mov eax, 0x1eef
div dword [0x1005342c]
mov eax, dword [0x10053418]
mov dword [0x1005342c], edx
xor edx, edx
mov ebp, dword [ebp + eax*4 + 0x10]
mov eax, dword [esp + 0x70]
inc dword [eax]
mov ecx, dword [eax]
mov eax, 0x1502
div dword [esi + ecx*4 + 0x68]
mov eax, dword [esp + 0x6c]
movzx ecx, word [0x10053410]
or ecx, 0x10c7
movzx esi, word [eax + 0x6ec]
movzx eax, byte [edi*4 + 0xbf2]
push eax
mov eax, dword [esp + 0x28]
push ecx
movzx eax, ax
push eax
push esi
push edx
push ebp
call fcn.10003770
mov ebp, dword [esp + 0x68]
add esp, 0x18
mov word [0x10053408], ax
mov eax, dword [esp + 0x74]
lea eax, [eax + eax*2]
cmp dword [ebp + eax*4], edi
je 0x1000ca7c
movzx ecx, byte [0x1005340b]
mov al, byte [esp + 0x13]
movzx edx, bl
imul edx, ecx
add ebx, dword [0x10053418]
inc ebx
mov cl, dl
shl cl, 5
sub cl, dl
or al, cl
movzx esi, al
movzx eax, word [0x10053410]
mov eax, dword [ebp + eax*4]
cdq
idiv dword [0x100533f8]
mov edx, dword [esp + 0x14]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x1c]
add esi, esi
or ecx, dword [eax + esi*8 + 0x94]
mov esi, 0xffff
mov eax, dword [0x100533dc]
mov dword [edx + eax*4], ecx
mov cx, word [0x10053410]
mov eax, dword [0x100533d8]
add cx, si
mov edx, dword [esp + 0x70]
mov word [0x10053410], cx
add cx, si
mov ebp, dword [0x10053434]
mov eax, dword [edx + eax*4 + 0x70]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
mov eax, dword [0x100533f4]
movzx edi, byte [eax + edx]
mov eax, dword [esp + 0x54]
mov word [0x10053410], cx
movzx ecx, cx
movzx esi, word [eax]
mov eax, dword [esp + 0x58]
mov edx, esi
movzx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0x54]
and ecx, eax
lea eax, [esi - 1]
mov word [edx], ax
mov edx, dword [esp + 0x2c]
movzx eax, ax
mov ax, word [edx + eax*8]
add ax, word [0x10053400]
movzx eax, ax
push eax
push ecx
push edi
push dword [esp + 0x2c]
push ebp
push ebx
push dword [esp + 0x8c]
push 0x62
push 0x18d4
call fcn.1000d740
movzx edx, byte [0x100533fe]
add esp, 0x24
add dx, word [0x7def]
mov eax, dword [esp + 0x24]
movzx ecx, ax
movzx edx, dx
imul edx, ecx
mov ecx, dword [0x10053434]
movzx eax, dx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
lea esi, [eax + ecx*2]
mov eax, dword [0x100533f4]
movzx ecx, word [esi]
mov eax, dword [edx + eax*4]
xor edx, edx
div ecx
mov word [esi], ax
mov eax, dword [esp + 0x24]
pop edi
pop esi
movzx eax, ax
add eax, dword [0x10053434]
pop ebp
pop ebx
add esp, 0x38
ret