Function at 0x42b920
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x5c8
push ebx
mov ebx, edx
push ebp
push esi
cmp ebx, 0x100
push edi
mov dword [esp + 0x38], ebx
mov edx, ecx
jbe 0x42b946
mov eax, dword [edx + 0x400]
mov dword [esp + 0x44], eax
jmp 0x42b94e
mov dword [esp + 0x44], 0x10
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x4c]
mov esi, ebx
rep stosd dword es:[edi], eax
mov ecx, edx
mov eax, dword [ecx]
add ecx, 4
mov ebp, dword [esp + eax*4 + 0x4c]
lea eax, [esp + eax*4 + 0x4c]
inc ebp
dec esi
mov dword [eax], ebp
jne 0x42b95f
cmp dword [esp + 0x4c], ebx
jne 0x42b9a1
mov ecx, dword [esp + 0x5e8]
mov edx, dword [esp + 0x5ec]
xor eax, eax
mov dword [ecx], 0
mov dword [edx], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c8
ret 0x14
mov ecx, 1
lea eax, [esp + 0x50]
mov esi, dword [eax]
xor ebp, ebp
cmp esi, ebp
jne 0x42b9bb
inc ecx
add eax, 4
cmp ecx, 0x10
jbe 0x42b9aa
mov edi, dword [esp + 0x5ec]
mov dword [esp + 0x10], ecx
cmp dword [edi], ecx
jae 0x42b9cc
mov dword [edi], ecx
mov eax, 0x10
lea esi, [esp + 0x8c]
cmp dword [esi], ebp
jne 0x42b9e4
dec eax
sub esi, 4
cmp eax, ebp
jne 0x42b9d8
mov esi, dword [edi]
mov dword [esp + 0x3c], eax
cmp esi, eax
jbe 0x42b9f0
mov dword [edi], eax
mov esi, 1
shl esi, cl
cmp ecx, eax
jae 0x42ba0d
lea edi, [esp + ecx*4 + 0x4c]
sub esi, dword [edi]
js 0x42ba20
inc ecx
add edi, 4
shl esi, 1
cmp ecx, eax
jb 0x42b9ff
lea ebx, [eax*4]
mov ecx, dword [esp + ebx + 0x4c]
sub esi, ecx
mov dword [esp + 0x48], esi
jns 0x42ba32
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c8
ret 0x14
add esi, ecx
xor ecx, ecx
dec eax
mov dword [esp + ebx + 0x4c], esi
mov dword [esp + 0x94], ebp
je 0x42ba59
xor esi, esi
mov edi, dword [esp + esi + 0x50]
add esi, 4
add ecx, edi
dec eax
mov dword [esp + esi + 0x94], ecx
jne 0x42ba46
mov ecx, 0x120
xor eax, eax
lea edi, [esp + 0x158]
xor esi, esi
rep stosd dword es:[edi], eax
mov edi, edx
mov eax, dword [edi]
add edi, 4
cmp eax, ebp
je 0x42ba8e
mov ecx, dword [esp + eax*4 + 0x90]
lea eax, [esp + eax*4 + 0x90]
mov dword [esp + ecx*4 + 0x158], esi
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x38]
inc esi
cmp esi, eax
jb 0x42ba6d
mov eax, dword [esp + ebx + 0x90]
lea ecx, [esp + 0x158]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x10]
xor ebx, ebx
xor edx, edx
xor esi, esi
cmp ecx, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x1c], 0xffffffff
mov dword [esp + 0xd4], ebp
mov dword [esp + 0x118], ebp
jg 0x42bddf
lea eax, [esp + ecx*4 + 0x4c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
mov edi, eax
dec eax
test edi, edi
mov dword [esp + 0x34], eax
je 0x42bdc3
mov eax, dword [esp + 0x1c]
lea edi, [esp + eax*4 + 0xd8]
mov eax, edx
add eax, dword [edi]
cmp ecx, eax
jle 0x42bc82
jmp 0x42bb22
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov ebx, dword [edi]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x5ec]
add edx, ebx
inc esi
add edi, 4
mov eax, dword [eax]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x30], edx
sub esi, edx
mov dword [esp + 0x24], edi
cmp esi, eax
jbe 0x42bb4f
mov esi, eax
mov ebp, dword [esp + 0x34]
mov ebx, ecx
sub ebx, edx
mov eax, 1
mov ecx, ebx
shl eax, cl
lea ecx, [ebp + 1]
cmp eax, ecx
jbe 0x42bb8a
or ecx, 0xffffffff
sub ecx, ebp
mov ebp, dword [esp + 0x2c]
add eax, ecx
inc ebx
cmp ebx, esi
jae 0x42bb8a
mov ecx, dword [ebp + 4]
add ebp, 4
shl eax, 1
cmp eax, ecx
jbe 0x42bb8a
sub eax, ecx
inc ebx
cmp ebx, esi
jb 0x42bb77
mov eax, dword [esp + 0x44]
lea ecx, [edx + ebx]
cmp ecx, eax
jbe 0x42bb9d
cmp edx, eax
jae 0x42bb9d
mov ebx, eax
sub ebx, edx
mov esi, 1
mov ecx, ebx
shl esi, cl
mov dword [edi], ebx
lea eax, [esi + 1]
lea edx, [eax + eax*2]
shl edx, 1
push edx
call fcn.00447230
add esp, 4
test eax, eax
je 0x42be1d
mov ecx, dword [0x7089ec]
lea edx, [ecx + esi + 1]
lea ecx, [eax + 6]
mov dword [0x7089ec], edx
mov edx, dword [esp + 0x5e8]
add eax, 2
mov ebp, ecx
mov dword [edx], ecx
mov dword [esp + 0x5e8], eax
mov dword [eax], 0
mov eax, dword [esp + 0x1c]
test eax, eax
lea ecx, [eax*4]
mov dword [esp + 0x40], ebp
lea edx, [esp + ecx + 0x118]
mov dword [edx], ebp
je 0x42bc66
mov eax, dword [esp + 0x28]
mov dword [esp + 0x16], ebp
mov dword [esp + ecx + 0x90], eax
mov cl, byte [edi - 4]
mov edi, dword [esp + 0x30]
mov al, bl
add al, 0x10
mov byte [esp + 0x15], cl
mov byte [esp + 0x14], al
mov eax, 1
mov ecx, edi
mov ebp, dword [esp + 0x24]
shl eax, cl
mov ecx, dword [esp + 0x28]
mov edx, dword [edx - 4]
dec eax
and eax, ecx
mov ecx, edi
sub ecx, dword [ebp - 4]
mov ebp, dword [esp + 0x40]
shr eax, cl
lea ecx, [eax + eax*2]
lea eax, [edx + ecx*2]
mov ecx, dword [esp + 0x14]
mov dx, word [esp + 0x18]
mov dword [eax], ecx
mov word [eax + 4], dx
jmp 0x42bc6a
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
add edi, ebx
cmp eax, edi
jg 0x42bb1a
mov ebx, dword [esp + 0x28]
mov ecx, eax
mov al, cl
sub al, dl
mov byte [esp + 0x15], al
mov eax, dword [esp + 0x38]
lea edi, [esp + eax*4 + 0x158]
mov eax, dword [esp + 0x20]
cmp eax, edi
jb 0x42bca4
mov byte [esp + 0x14], 0x63
jmp 0x42bcfe
mov eax, dword [eax]
mov edi, dword [esp + 0x5dc]
cmp eax, edi
jae 0x42bccf
cmp eax, 0x100
sbb eax, eax
neg eax
add eax, 0xf
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x20]
mov di, word [eax]
mov word [esp + 0x16], di
jmp 0x42bcf7
sub eax, edi
shl eax, 1
mov edi, eax
mov eax, dword [esp + 0x5e4]
mov al, byte [edi + eax]
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x5e0]
mov ax, word [edi + eax]
mov word [esp + 0x16], ax
mov eax, dword [esp + 0x20]
add eax, 4
mov dword [esp + 0x20], eax
sub ecx, edx
mov edi, 1
shl edi, cl
mov eax, ebx
mov ecx, edx
shr eax, cl
cmp eax, esi
jae 0x42bd4c
lea ecx, [edi + edi*2]
shl ecx, 1
mov dword [esp + 0x40], ecx
lea ecx, [eax + eax*2]
lea ecx, [ebp + ecx*2]
mov dword [esp + 0x24], ecx
mov ebx, dword [esp + 0x14]
add eax, edi
mov dword [ecx], ebx
mov bx, word [esp + 0x18]
mov word [ecx + 4], bx
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
add ecx, ebx
cmp eax, esi
mov dword [esp + 0x24], ecx
jb 0x42bd25
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
lea ecx, [eax - 1]
mov eax, 1
shl eax, cl
test ebx, eax
je 0x42bd66
xor ebx, eax
shr eax, 1
test ebx, eax
jne 0x42bd5e
mov edi, 1
mov ecx, edx
shl edi, cl
xor ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + eax*4 + 0x90]
dec edi
and edi, ebx
cmp edi, ecx
je 0x42bdac
mov edi, dword [esp + eax*4 + 0xd4]
dec eax
sub edx, edi
mov edi, 1
mov ecx, edx
shl edi, cl
mov ecx, dword [esp + eax*4 + 0x90]
dec edi
and edi, ebx
cmp edi, ecx
jne 0x42bd87
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov ecx, eax
dec eax
test ecx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
jne 0x42bb01
mov eax, dword [esp + 0x2c]
inc ecx
add eax, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jle 0x42baec
mov ecx, dword [esp + 0x5ec]
mov edx, dword [esp + 0xd8]
mov dword [ecx], edx
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x42be0e
cmp eax, 1
je 0x42be0e
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c8
ret 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c8
ret 0x14
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x42be45
mov eax, dword [esp + 0x118]
test eax, eax
je 0x42be45
mov esi, dword [eax - 4]
sub eax, 6
push eax
call fcn.00446d50
add esp, 4
mov eax, esi
test esi, esi
jne 0x42be30
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x5c8
ret 0x14