Function at 0x421500
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov ecx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [ebp + 4]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
cmp word [edi + edx + 2], 0
lea edx, [edx + 2]
jne 0x421520
mov esi, dword [ecx + 4]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + eax + 2], 0
lea eax, [eax + 2]
jne 0x421540
sar edx, 1
sar eax, 1
lea ecx, [edx + eax]
mov dword [esp + 0x54], eax
add eax, edx
add eax, 0x1b
test eax, eax
mov dword [esp + 8], edx
mov dword [esp + 0x50], ecx
jns 0x42156e
mov eax, 0xffffffff
jmp 0x421575
lea eax, [ecx*2 + 0x36]
push eax
call fcn.0040cbd0
add esp, 4
mov dword [esp + 0x10], 0xd102cf10
mov dword [esp + 0x14], 0xd577d361
mov dword [esp + 0x18], 0xd97ad777
mov dword [esp + 0x1c], 0xdd1ddb38
mov dword [esp + 0x20], 0xa16adf64
mov dword [esp + 0x24], 0xa50ca307
mov dword [esp + 0x28], 0xa90da711
mov dword [esp + 0x2c], 0xad04ab19
mov dword [esp + 0x30], 0xb17baf4c
mov dword [esp + 0x34], 0xb506b317
mov dword [esp + 0x38], 0xb91db700
mov dword [esp + 0x3c], 0xbd13bb16
mov dword [esp + 0x40], 0x8162bf09
mov word [esp + 0x44], 0x8380
mov dword [esp + 0x46], 0
mov ebx, 0x7c18002d
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx - 0x7c18001d]
xor ecx, ebx
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x1e
mov byte [esp + ebx - 0x7c18001d], cl
inc ebx
cmp ebx, 0x7c180067
jne 0x421600
movzx ecx, word [edi]
mov ebx, eax
test cx, cx
je 0x421651
add edi, 2
mov ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x421640
mov word [ebx], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x421681
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x421670
mov word [ebx], 0
movzx ecx, word [esi]
test cx, cx
mov dword [esp], eax
je 0x4216b1
add esi, 2
nop
nop
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 0x4216a0
mov word [ebx], 0
mov ebx, dword [ebp]
mov eax, 0xfffffffe
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x4216c0
mov edi, dword [ebp + 8]
mov ecx, 0xfffffffe
mov edx, dword [esp + 0x74]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x4216e0
mov esi, dword [edx]
mov edx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esi + edx + 2], 0
lea edx, [edx + 2]
jne 0x421700
sar eax, 1
sar ecx, 1
sar edx, 1
add ecx, eax
lea eax, [edx + ecx]
add eax, 0x13
test eax, eax
mov dword [esp + 0xc], edi
jns 0x421728
mov eax, 0xffffffff
jmp 0x421731
add ecx, edx
lea eax, [ecx*2 + 0x26]
mov dword [esp + 4], esi
push eax
call fcn.0040cbd0
add esp, 4
movzx edx, word [ebx]
mov ecx, eax
test dx, dx
je 0x421761
add ebx, 2
mov ecx, eax
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x421750
mov dword [esp + 0x4c], eax
mov esi, ecx
mov word [ecx], 0x2f
mov dword [esp + 0x10], 0x89d18bfd
mov dword [esp + 0x14], 0x850a8700
mov dword [esp + 0x18], 0x8130833f
mov dword [esp + 0x1c], 0x9d299f0d
mov dword [esp + 0x20], 0x99289b2d
mov dword [esp + 0x24], 0x95e79715
mov dword [esp + 0x28], 0x9394
mov byte [esp + 0x2c], 0
mov eax, 0x23
mov ebp, 0x995dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x13]
lea ebx, [eax - 0x14099600]
mov edx, eax
and edx, ecx
mov edi, ebp
and edi, 0x8949f
and ebx, 0xa8464860
or ebx, edi
xor ebx, ecx
xor ebx, 0x43b8b69f
or ebx, edx
lea ecx, [ebx + ebx]
not ecx
add ecx, ebx
and ebx, 0xc7
and ecx, 0x38
or ecx, ebx
xor ecx, edx
xor cl, 0x38
add cl, 0x51
mov byte [esp + eax - 0x13], cl
inc eax
dec ebp
cmp eax, 0x40
jne 0x4217c0
mov ebp, esi
add ebp, 2
mov ecx, dword [esp + 0xc]
movzx eax, word [ecx]
test ax, ax
je 0x421844
add ecx, 2
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421830
jmp 0x42184c
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 4]
mov word [ebp], 0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x421872
lea ecx, [esp + 0x12]
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x421860
mov word [ebp], 0
movzx eax, word [edx]
test ax, ax
je 0x4218a2
add edx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp], ax
add ebp, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x421890
mov word [ebp], 0
mov dword [esp + 0x10], 0xcfcec996
mov byte [esp + 0x14], 0
mov eax, 0x98f09d52
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x670f62be]
mov edx, eax
xor edx, 0xa00eb603
mov edi, eax
xor edi, ecx
xor ecx, 0xa00eb603
not edi
and edi, edx
add ecx, edx
add edi, edi
sub ecx, edi
add ecx, 0xc25a17de
mov edx, ecx
and edx, 0x34ced65
xor ecx, 0x34ced65
lea edi, [ecx + edx*2]
mov ebx, 0x5d
sub ebx, edi
lea edx, [ecx + edx*2]
add edx, 0x22
and ecx, 1
and ebx, 0x51
and edx, 0xae
or edx, ebx
xor edx, 0x50
lea ecx, [edx + ecx*2]
mov byte [esp + eax + 0x670f62be], cl
inc eax
cmp eax, 0x98f09d57
jne 0x4218c0
lea eax, [esp + 0x10]
push 0
push 0
push 0xc00000
push eax
mov ebx, dword [esp + 0x10]
push ebx
mov edi, dword [esp + 0x60]
push edi
push dword [esp + 0x84]
call fcn.004248e0
add esp, 0x1c
mov byte [esp + 4], al
jmp dword [0x44abb4]