Function at 0x405da0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push edi
push esi
push ebx
mov dword [ebp - 4], eax
mov eax, 0x13
cmp cl, 0
jne 0x405d6b
mov eax, dword [ebp + 0xc]
cmp eax, 2
jge 0x405d61
mov eax, 2
cmp eax, 0x12
jle 0x405d6b
mov eax, 0x12
mov dword [ebp + 0xc], eax
push eax
mov eax, 0x270f
cmp byte [ebp + 0x10], 2
jb 0x405d7d
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
call fcn.004062da
mov edi, dword [ebp - 4]
movzx eax, word [ebp - 0x1c]
sub eax, 0x7fff
cmp eax, 2
jae 0x405da7
lea esi, [eax + eax*2 + 0x405d38]
mov ecx, 0xb11bba03
and al, 0x2f
xor edx, 0x6970da81
push edx
mov edi, 0x6a51edbe
xor edi, 0xc6d113
pop ebx
xor edi, ebx
add esp, 0xfffffffc
mov edx, esp
sbb edx, 0xbf526970
mov esi, 0x816a51ed
not dword [ebx]
rol esi, 1
add byte [ebx + 0x31], bl
fild word [ebx - 0x1d76033c]
mov dword [edx], edi
push 0x2d667549
mov edi, 0x1fdc1d07
pop edx
xor edi, edx
push edi
mov ecx, 0x2f01c3be
xor ecx, 0x31382daf
pop ebx
xor ecx, ebx
pop esi
xor ecx, esi
push 0x91917d3
mov esi, 0x91917d3
pop edi
xor esi, edi
xor esi, ecx
mov edi, 1
mov ebx, 0
xor edi, ebx
sub esi, edi
mov eax, dword [esi + 1]
mov edi, 0x6372953b
xor edi, 0x5566d70e
mov ebx, 0xb73c1a8
xor edi, ebx
mov esi, edi
push esi
mov ecx, 0x36bad70a
xor ecx, 0x3bbdd50f
push 0x63c7bbf5
mov ebx, 0x53a73a6d
pop esi
xor ebx, esi
xor ecx, ebx
pop edx
xor ecx, edx
xor esi, esi
add esi, ecx
mov ebx, esi
push ebx
mov edi, esp
add esp, 0xfffffffc
mov dword [esp], edi
pop ecx
mov edx, 4
sub esp, edx
xor ebx, ebx
add ebx, esp
mov dword [ebx], ecx
push 0x15ae8b44
mov ecx, 0x178e9918
pop edi
xor ecx, edi
mov esi, 0x40000000
mov edi, 0x10400082
xor esi, edi
xor ecx, esi
mov edi, ecx
push edi
mov ecx, 0x66eaa701
xor ecx, 0xbfcdfd7
mov edx, 0x7522a08
mov esi, 0x38244040
xor edx, esi
xor edx, ecx
pop ebx
xor edx, ebx
mov edi, 0xfffffffc
add esp, edi
mov ecx, esp
mov dword [ecx], edx
mov esi, 0x2f170479
xor esi, 0x50c6d577
mov ebx, 0x218c1ec
xor ebx, 0x582b5077
xor ebx, esi
mov esi, 0x2d5f1b97
xor esi, 0x7dd307c5
xor ebx, esi
mov edx, 0x756ec2c7
xor ebx, edx
mov ecx, 0
xor ecx, ebx
add esp, 0xfffffffc
mov dword [esp], ecx
mov ecx, 0x56880220
mov edx, 0x48102
xor ecx, edx
mov edx, ecx
xor edx, 0xffffffff
and edx, 0x36cb481a
and ecx, 0xc934b7e5
or ecx, edx
add esp, 0xfffffffc
mov edi, esp
mov dword [edi], ecx
push 0x3081cd60
mov esi, 0x30871478
pop edx
xor esi, edx
mov ecx, 0x2133cae5
xor ecx, 0x4132c8c5
xor esi, ecx
pop ebx
xor esi, ebx
xor edi, edi
add edi, esi
add esp, 0xfffffffc
mov dword [esp], edi
call eax
pop edi
push 0x392f8b34
mov edx, 0x3b17ef5d
pop ebx
xor edx, ebx
mov esi, edx
xor esi, 0xffffffff
and esi, 0x54bd7000
and edx, 0xab428fff
or edx, esi
mov edi, 0x53f879aa
mov esi, 0x57d6ee6
xor esi, edi
xor edx, esi
push 0x46670de7
mov ecx, 0x5f85a52d
pop ebx
xor ecx, ebx
push 0x3a1a0308
mov eax, 0x24eebbc3
pop esi
xor eax, esi
xor eax, ecx
mov edi, 0x56517519
xor edi, 0x5151655a
mov esi, 0x51b95598
xor esi, 0x51ef1eac
xor edi, esi
xor edi, eax
mov ecx, 0x594b5bab
mov eax, 0x31247c0b
xor eax, ecx
mov ebx, 0x28292700
mov ecx, 0x404600a6
xor ebx, ecx
xor ebx, eax
push 0x11c0151a
mov esi, 0x11c0913a
pop ecx
xor esi, ecx
push 0x1e0ba599
mov eax, 0x1e4bad58
pop ecx
xor eax, ecx
xor esi, eax
xor ebx, esi
mov ecx, 0x1a4a7dca
mov eax, 0xe5b58236
xor eax, ecx
add esp, eax
mov eax, esp
push eax
pop esi
mov dword [esi], edx
mov eax, 4
mov ecx, 0
xor eax, ecx
sub esp, eax
mov eax, esp
push eax
pop esi
mov dword [esi], ebx
xor edx, edx
mov dl, byte [edi]
add ebx, edx
mov dl, byte [ebx]
xor esi, esi
add esi, ebx
sub esi, 0
pop ebx
mov byte [edi], dl
mov eax, 0x358cfa34
xor eax, 0xca7305cb
add edi, eax
pop edx
mov esi, 0x47ca24e2
mov ecx, 0x54123686
xor ecx, esi
mov eax, 0x48254c81
mov esi, 0xa402a11a
xor eax, esi
xor eax, ecx
add edx, eax
mov ecx, 0x3ba47929
xor ecx, 0x3ba47929
xor ecx, edx
mov esi, ecx
mov eax, esi
or eax, 0
jne 0x405fbf
push 0xe64f6be
mov esi, 0x6ee37838
pop eax
xor esi, eax
mov eax, esi
xor eax, 0xffffffff
and eax, 0x30e65b1
and esi, 0xfcf19a4e
or esi, eax
mov ebx, esi
mov edx, 0xffffffff
xor ebx, edx
and ebx, 0x63c9a365
and esi, 0x9c365c9a
or esi, ebx
call esi
pop edi
pop edi
ret