Function at 0x420720
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov ebx, dword [eax + 4]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax], 0
lea eax, [eax + 2]
jne 0x420740
add eax, ebx
add eax, 0xfffffffe
mov edx, ebx
not edx
and edx, eax
add edx, edx
xor eax, ebx
sub edx, eax
mov edi, dword [ecx + 4]
xor eax, eax
cmp word [edi + eax], 0
lea eax, [eax + 2]
jne 0x420760
sar edx, 1
add eax, edi
add eax, 0xfffffffe
mov ecx, edi
not ecx
and ecx, eax
add ecx, ecx
xor eax, edi
sub ecx, eax
sar ecx, 1
lea esi, [edx + ecx]
mov dword [esp + 0x48], ecx
lea eax, [edx + ecx]
add eax, 0x1b
test eax, eax
mov dword [esp + 0x4c], edx
jns 0x42079b
mov eax, 0xffffffff
jmp 0x4207a2
lea eax, [esi*2 + 0x36]
push eax
call fcn.0040c6f0
add esp, 4
mov dword [esp + 4], 0x13c611b4
mov dword [esp + 8], 0xef4ded5b
mov dword [esp + 0xc], 0xeb5ee949
mov dword [esp + 0x10], 0xe73be504
mov dword [esp + 0x14], 0xe36ee168
mov dword [esp + 0x18], 0xff48fd41
mov dword [esp + 0x1c], 0xfb43f94b
mov dword [esp + 0x20], 0xf740f543
mov dword [esp + 0x24], 0xf321f110
mov dword [esp + 0x28], 0xcf42cd71
mov dword [esp + 0x2c], 0xcb73c944
mov dword [esp + 0x30], 0xc779c572
mov dword [esp + 0x34], 0xc366c173
mov dword [esp + 0x38], 0xdddc
xor edx, edx
nop
nop
nop
mov ecx, edx
add cl, 0x7c
xor cl, byte [esp + edx + 4]
add cl, 0x94
mov byte [esp + edx + 4], cl
inc edx
cmp edx, 0x38
jne 0x420820
movzx ecx, word [ebx]
mov ebp, eax
test cx, cx
je 0x420862
add ebx, 2
mov ebp, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x420850
mov dword [esp + 0x3c], eax
mov word [ebp], 0
movzx ecx, word [esp + 4]
test cx, cx
je 0x420892
lea edx, [esp + 6]
nop
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420880
mov word [ebp], 0
movzx ecx, word [edi]
test cx, cx
mov dword [esp + 0x44], esi
je 0x4208c4
add edi, 2
mov edx, dword [esp + 0x6c]
nop
nop
nop
nop
nop
mov word [ebp], cx
add ebp, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x4208b0
jmp 0x4208c8
mov edx, dword [esp + 0x6c]
mov word [ebp], 0
mov esi, dword [edx]
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax], 0
lea eax, [eax + 2]
jne 0x4208e0
lea ecx, [esi + eax]
add ecx, 0xfffffffe
mov eax, esi
not eax
and eax, ecx
add eax, eax
xor ecx, esi
sub eax, ecx
mov edi, dword [edx + 8]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx], 0
lea ecx, [ecx + 2]
jne 0x420910
lea edx, [edi + ecx]
add edx, 0xfffffffe
mov ecx, edi
not ecx
and ecx, edx
add ecx, ecx
mov dword [esp + 0x50], edi
xor edx, edi
sub ecx, edx
mov edx, dword [esp + 0x70]
mov edi, dword [edx]
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + edx], 0
lea edx, [edx + 2]
jne 0x420940
sar eax, 1
sar ecx, 1
lea ebx, [edi + edx]
add ebx, 0xfffffffe
mov edx, edi
not edx
and edx, ebx
add edx, edx
xor ebx, edi
sub edx, ebx
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
jns 0x420975
mov eax, 0xffffffff
jmp 0x42097e
add ecx, edx
lea eax, [ecx*2 + 0x26]
push eax
call fcn.0040c6f0
add esp, 4
movzx ecx, word [esi]
mov ebx, eax
test cx, cx
je 0x4209b1
add esi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [esi]
add esi, 2
test cx, cx
jne 0x4209a0
mov dword [esp], edi
mov dword [esp + 0x40], eax
mov word [ebx], 0x2f
mov dword [esp + 4], 0x59015b35
mov dword [esp + 8], 0x5dea5fd0
mov dword [esp + 0xc], 0x51e053e7
mov dword [esp + 0x10], 0x55e957e5
mov dword [esp + 0x14], 0xa918abe5
mov dword [esp + 0x18], 0xaddfaf1d
mov dword [esp + 0x1c], 0xa3ac
mov eax, 0x6f
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x6b]
mov esi, eax
and esi, edx
mov ebp, esi
and ebp, 2
mov edi, esi
or edi, 0xfffffffd
inc edi
mov ecx, esi
and ecx, 0xfffffffd
imul ecx, edi
or esi, 2
imul esi, ebp
add ecx, edx
sub ecx, esi
add ecx, eax
add ecx, 0xb386ee00
mov edx, ecx
and edx, 0x54
xor ecx, 0xd4
lea ecx, [ecx + edx*2]
inc cl
mov byte [esp + eax - 0x6b], cl
inc eax
cmp eax, 0x8b
jne 0x420a00
add ebx, 2
mov ecx, dword [esp + 0x50]
movzx eax, word [ecx]
test ax, ax
je 0x420a73
add ecx, 2
mov edx, dword [esp]
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420a60
jmp 0x420a76
mov edx, dword [esp]
mov word [ebx], 0
movzx eax, word [esp + 4]
test ax, ax
je 0x420aa3
lea ecx, [esp + 6]
mov edi, dword [esp + 0x40]
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420a90
jmp 0x420aa7
mov edi, dword [esp + 0x40]
mov word [ebx], 0
movzx eax, word [edx]
test ax, ax
je 0x420ad1
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x420ac0
mov word [ebx], 0
mov dword [esp + 4], 0x3f3e3956
mov dword [esp + 8], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 4]
lea ecx, [eax + 0xa]
mov esi, 0xd0e09df5
sub esi, eax
xor ecx, esi
and ecx, edx
xor ecx, esi
mov edx, ecx
not edx
and edx, 0x4d
add edx, edx
add ecx, edx
sub edx, ecx
add dl, 0xcd
mov byte [esp + eax + 4], dl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 8
jb 0x420af0
lea eax, [esp + 4]
push 0
push 0
push 0xc00000
push eax
mov esi, dword [esp + 0x4c]
push esi
push edi
push dword [esp + 0x80]
call fcn.00424060
add esp, 0x1c
mov byte [esp], al
jmp dword [0x44a50c]