Function at 0x424a70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x160
mov dword [esp + 0x10], 0x3430179
mov dword [esp + 0x14], 0x1fac1db2
mov dword [esp + 0x18], 0x1bbb1942
mov dword [esp + 0x1c], 0x17b71596
mov dword [esp + 0x20], 0x13101169
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
mov byte [esp + 0x28], 0
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x18
ja 0x424b33
nop
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
movzx edi, byte [esp + edx + 0x10]
lea edx, [ecx + 0x580adab]
mov esi, edx
and esi, edi
xor edx, edi
add ecx, 0xab
and ecx, edi
mov edi, ecx
not edi
and edi, esi
sub edx, edi
sub esi, ecx
lea ecx, [edx + esi*2]
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 0xc0]
add cl, 0x53
mov edx, dword [esp + 0x8c]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x19
jb 0x424ad0
lea esi, [esp + 0x132]
lea edx, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x146]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x88]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x449684]
mov ebx, dword [esp + 0x88]
test ebx, ebx
jns 0x424b82
mov eax, 0xffffffff
jmp 0x424b85
lea eax, [ebx + ebx]
push eax
call fcn.00408f80
add esp, 4
push edi
push ebx
mov dword [esp + 0x84], eax
push eax
push 9
push esi
push 0
call dword [0x449684]
mov dword [esp + 0x10], 0x8b0b9552
mov dword [esp + 0x14], 0x8f2d891f
mov dword [esp + 0x18], 0x831a8d1f
mov dword [esp + 0x1c], 0x87808126
lea edx, [esp + 0x20]
mov word [esp + 0x20], 0
mov byte [esp + 0x22], 0
mov dword [esp + 0x8c], 0
mov eax, dword [esp + 0x8c]
cmp eax, 0x12
ja 0x424c54
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
movzx ecx, byte [esp + ecx + 0x10]
mov esi, eax
and esi, 0x23655bed
xor eax, 0x23655bed
lea eax, [eax + esi*2]
lea esi, [eax + ecx]
and eax, ecx
add eax, eax
mov ecx, esi
not ecx
and ecx, eax
not eax
and eax, esi
sub eax, ecx
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0x85
mov ecx, dword [esp + 0x8c]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x8c]
mov eax, dword [esp + 0x8c]
cmp eax, 0x13
jb 0x424bf0
lea edi, [esp + 0x122]
lea esi, [esp + 0x10]
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x132]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x10], 0xc36bc184
mov dword [esp + 0x14], 0xc765c577
mov dword [esp + 0x18], 0xcb78c967
mov dword [esp + 0x1c], 0xcf8dcd68
mov dword [esp + 0x20], 0xd37cd171
mov dword [esp + 0x24], 0xd764d575
mov dword [esp + 0x28], 0xdbdad961
lea esi, [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x8c], 0
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x27
ja 0x424d41
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x8c]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx - 0x392340a0]
add ecx, 0x60
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xc0], edi
mov ecx, dword [esp + 0xc0]
add cl, 0x60
mov edx, dword [esp + 0x8c]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x8c]
mov ecx, dword [esp + 0x8c]
cmp ecx, 0x28
jb 0x424cf0
lea edx, [esp + 0x8c]
lea ebx, [esp + 0x10]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xa8]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x10], 0xb303b5ea
mov dword [esp + 0x14], 0x8f0db13f
mov dword [esp + 0x18], 0x8b028d3f
mov dword [esp + 0x1c], 0x87d88936
mov dword [esp + 0x20], 0x83da852a
lea ebx, [esp + 0x24]
mov word [esp + 0x24], 0x8182
mov dword [esp + 0x26], 0
mov word [esp + 0x2a], 0
mov dword [esp + 0xf8], 0
mov ecx, dword [esp + 0xf8]
cmp ecx, 0x1b
ja 0x424e2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xf8]
mov esi, dword [esp + 0xf8]
movzx esi, byte [esp + esi + 0x10]
lea edi, [ecx + 0x52aa7f19]
lea eax, [ecx + 0x19]
and eax, esi
and edi, eax
add ecx, esi
add ecx, 0x52aa7f19
add edi, eax
sub ecx, edi
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0xc0]
add al, 0x51
mov ecx, dword [esp + 0xf8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xf8]
mov eax, dword [esp + 0xf8]
cmp eax, 0x1c
jb 0x424dd0
lea esi, [esp + 0x146]
lea eax, [esp + 0x10]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x15a]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x122]
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], esi
lea ebx, [esp + 0x28]
mov eax, dword [esp + 0x7c]
add eax, 2
mov dword [esp + 0xac], eax
mov dword [esp + 0x84], 0
mov eax, dword [0x44483c]
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax