Function at 0x40a0c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x22c
mov eax, dword [0x4495c4]
mov dword [esp + 0x1ac], 0xf7f6e1f8
mov byte [esp + 0x1b0], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0xd6
xor dl, byte [esp + ecx + 0x1ac]
add dl, 0xd2
mov byte [esp + ecx + 0x1ac], dl
mov edx, ecx
xor edx, 0x63e2997
lea ecx, [edx + ecx*2]
add ecx, 0xf9c1d66a
cmp ecx, 5
jb 0x40a0f0
mov ecx, dword [esp + 0x1ac]
mov dword [esp + 0x1c], 0x39a73ba5
mov dword [esp + 0x20], 0x258727e6
mov dword [esp + 0x24], 0x21fc23f9
mov dword [esp + 0x28], 0x2d822ff2
mov dword [esp + 0x2c], 0x29be2bb8
mov dword [esp + 0x30], 0x1728
mov byte [esp + 0x34], 0
mov edx, 0x43b290cb
nop
nop
nop
movzx esi, byte [esp + edx - 0x43b290af]
mov edi, edx
and edi, esi
add edi, edi
sub esi, edi
add esi, edx
mov edi, esi
and edi, 8
xor esi, 8
lea ebx, [esi + edi*2]
inc bl
mov byte [esp + edx - 0x43b290af], bl
inc edx
cmp edx, 0x43b290e4
jne 0x40a160
lea edi, [esp + 0x1c]
push ecx
push 0
push edi
call eax
mov ecx, 0x4495c8
push eax
call fcn.00437640
movzx eax, al
mov eax, dword [eax*4 + 0x442ab0]
mov ecx, 0x6ec9920e
xor ecx, dword [0x442ab8]
add eax, ecx
inc eax
jmp eax
aaa
aaa
aaa
cmp byte [edi], dh
cmp dword [edi], esi
inc ecx
aaa
inc edx
aaa
inc ebx
aaa
inc esp
aaa
inc ebp
aaa
inc esi
cmp byte [eax], dh
cmp byte [ecx], dh
cmp byte [edx], dh
cmp byte [ebx], dh
cmp byte [eax + edi], dh
xor eax, 0x37383638
cmp byte [eax], bh
cmp byte [ecx], bh
cmp byte [ecx + 0x38], al
inc edx
cmp byte [ebx + 0x38], al
inc esp
cmp byte [ebp + 0x38], al
inc esi
cmp dword [eax], esi
cmp dword [ecx], esi
cmp dword [edx], esi
cmp dword [ebx], esi
cmp dword [ecx + edi], esi
xor eax, 0x37393639
cmp dword [eax], edi
cmp dword [ecx], edi
cmp dword [ecx + 0x39], eax
inc edx
cmp dword [ebx + 0x39], eax
inc esp
cmp dword [ebp + 0x39], eax
inc esi
inc ecx
xor byte [ecx + 0x31], al
inc ecx
xor al, byte [ecx + 0x33]
inc ecx
xor al, 0x41
xor eax, 0x37413641
inc ecx
cmp byte [ecx + 0x39], al
inc ecx
inc ecx
inc ecx
inc edx
inc ecx
inc ebx
inc ecx
inc esp
inc ecx
inc ebp
inc ecx
inc esi
inc edx
xor byte [edx + 0x31], al
inc edx
xor al, byte [edx + 0x33]
inc edx
xor al, 0x42
xor eax, 0x37423642
inc edx
cmp byte [edx + 0x39], al
inc edx
inc ecx
inc edx
inc edx
inc edx
inc ebx
inc edx
inc esp
inc edx
inc ebp
inc edx
inc esi
inc ebx
xor byte [ebx + 0x31], al
inc ebx
xor al, byte [ebx + 0x33]
inc ebx
xor al, 0x43
xor eax, 0x37433643
inc ebx
cmp byte [ebx + 0x39], al
inc ebx
inc ecx
inc ebx
inc edx
inc ebx
inc ebx
inc ebx
inc esp
inc ebx
inc ebp
inc ebx
inc esi
inc esp
xor byte [ecx + esi + 0x44], al
xor al, byte [ebx + esi + 0x44]
xor al, 0x44
xor eax, 0x37443644
inc esp
cmp byte [ecx + edi + 0x44], al
inc ecx
inc esp
inc edx
inc esp
inc ebx
inc esp
inc esp
inc esp
inc ebp
inc esp
inc esi
inc ebp
xor byte [ebp + 0x31], al
inc ebp
xor al, byte [ebp + 0x33]
inc ebp
xor al, 0x45
xor eax, 0x37453645
inc ebp
cmp byte [ebp + 0x39], al
inc ebp
inc ecx
inc ebp
inc edx
inc ebp
inc ebx
inc ebp
inc esp
inc ebp
inc ebp
inc ebp
inc esi
inc esi
xor byte [esi + 0x31], al
inc esi
xor al, byte [esi + 0x33]
inc esi
xor al, 0x46
xor eax, 0x37463646
inc esi
cmp byte [esi + 0x39], al
inc esi
inc ecx
inc esi
inc edx
inc esi
inc ebx
inc esi
inc esp
inc esi
inc ebp
inc esi
inc esi
add cl, bh
adc al, 2
add byte [eax], al
add byte [eax], al
add al, al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc esi
add dword [edx + eax], edx
add byte [eax], al
add byte [eax], al
add al, al
add byte [eax], al
add byte [eax], al
add byte [eax], al
inc esi
or eax, dword [ecx]
add byte [eax], al
add byte [eax], al
add byte [eax], al
rol byte [eax], 0
add byte [eax], al
add byte [eax], al
inc esi
add dword [eax], eax
add byte [eax], al
or byte [eax], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
add al, 0
add byte [eax], al
adc byte [eax], al
add byte [eax], al
add byte [eax], 0
add byte [eax], ah
add byte [eax], al
add byte [eax], al
add byte [eax], al
xchg dword [esi + 0x737fdc12], esp
iretd