Function at 0x4226f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x148
cmp byte [ebp + 0x18], 0
je 0x4227de
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
lea ebx, [esp + 0x20]
push 0x120
push 0
push ebx
call fcn.0040cc50
add esp, 0xc
mov ecx, esi
push 0
push 0
push 0x120
push ebx
push edi
push dword [ebp + 0xc]
call fcn.0043dfa0
test eax, eax
js 0x4227de
mov dword [esp + 4], 0x3e073006
mov byte [esp + 8], 0x9c
mov dword [esp + 9], 0
mov byte [esp + 0xd], 0
mov esi, 0x9afa86e4
mov edi, 0x6505791b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi + 0x65057920]
mov ebx, edx
xor ebx, esi
or ebx, edi
mov eax, ebx
shr al, 1
and al, 1
mov ecx, ebx
not cl
mov ah, cl
and ah, 0x7d
mul ah
add al, al
sub dl, al
test bl, 2
sete al
or cl, 2
mul cl
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0x8c
mov byte [esp + esi + 0x65057920], al
inc esi
dec edi
cmp esi, 0x9afa86ee
jne 0x422770
cmp byte [esp + 0x3f], 0
js 0x4227e5
lea eax, [esp + 0x28]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
mov al, 1
mov dword [esp + 0x14], eax
jmp 0x422842
xor eax, eax
jmp 0x422c1e
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov eax, ebx
or eax, esi
je 0x42283a
mov edi, dword [esp + 0x30]
inc edi
push edi
call fcn.0040cbd0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.0043dfa0
test eax, eax
setns al
mov dword [esp + 0x14], eax
js 0x42282f
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
push edi
call fcn.0040cbe0
add esp, 4
jmp 0x422842
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0xfaf2e882
mov dword [esp + 8], 0xde9
mov eax, 0x9f7e7a42
mov ecx, 0xbd
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x608185c2]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov edi, edx
and edi, 0x1d78624a
mov esi, edx
xor esi, 0xe2879cb5
add esi, edx
sub esi, edi
and edx, 0x820618b5
add esi, edx
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + eax + 0x608185c2], dl
inc eax
dec ecx
cmp eax, 0x9f7e7a4a
jne 0x422860
cmp byte [esp + 0x11f], 0
js 0x4228cd
lea eax, [esp + 0x108]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
mov bl, 1
jmp 0x422929
mov ebx, dword [esp + 0x108]
mov esi, dword [esp + 0x10c]
mov eax, ebx
or eax, esi
je 0x422927
mov edi, dword [esp + 0x110]
inc edi
push edi
call fcn.0040cbd0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.0043dfa0
test eax, eax
setns bl
js 0x42291c
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
push edi
call fcn.0040cbe0
add esp, 4
jmp 0x422929
xor ebx, ebx
mov edx, dword [esp + 0x14]
and dl, bl
mov dword [esp + 4], 0xa5a7aab4
mov dword [esp + 8], 0xe2cdd2b9
mov byte [esp + 0xc], 0x64
mov dword [esp + 0xd], 0
mov word [esp + 0x11], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xbb
xor cl, byte [esp + eax + 4]
add cl, 0x59
mov byte [esp + eax + 4], cl
inc eax
cmp eax, 0xf
jne 0x422960
cmp byte [esp + 0x57], 0
js 0x42299a
lea eax, [esp + 0x40]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
mov esi, edx
call fcn.00406290
mov edx, esi
add esp, 0xc
mov bl, 1
jmp 0x4229f5
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov eax, ebx
or eax, esi
je 0x4229f3
mov dword [esp + 0x14], edx
mov edi, dword [esp + 0x48]
inc edi
push edi
call fcn.0040cbd0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.0043dfa0
test eax, eax
setns bl
js 0x4229e4
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
push edi
call fcn.0040cbe0
add esp, 4
mov edx, dword [esp + 0x14]
jmp 0x4229f5
xor ebx, ebx
and dl, bl
mov dword [esp + 0x14], edx
mov dword [esp + 4], 0xebfe10e0
mov byte [esp + 8], 0x6c
mov dword [esp + 9], 0
mov dword [esp + 0xc], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 4]
mov esi, eax
and esi, 0x18
mov ebx, ecx
xor ebx, 0x6f4f6e6c
add ebx, esi
mov esi, edx
and esi, ebx
add esi, esi
sub ebx, esi
add bl, dl
add bl, 0xe4
mov byte [esp + ecx + 4], bl
inc ecx
add eax, 2
cmp ecx, 0xc
jne 0x422a20
cmp byte [esp + 0x6f], 0
js 0x422a6e
lea eax, [esp + 0x58]
lea ecx, [esp + 4]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
mov bl, 1
jmp 0x422ac1
mov ebx, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov eax, ebx
or eax, esi
je 0x422abf
mov edi, dword [esp + 0x60]
inc edi
push edi
call fcn.0040cbd0
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push esi
push ebx
call fcn.0043dfa0
test eax, eax
setns bl
js 0x422ab4
lea eax, [esp + 4]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00406290
add esp, 0xc
push edi
call fcn.0040cbe0
add esp, 4
jmp 0x422ac1
xor ebx, ebx
mov eax, dword [esp + 0x14]
and al, bl
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x124]
mov dword [esp + 4], 0xeae219ed
mov dword [esp + 8], 0xc8ddd0de
mov dword [esp + 0xc], 0xabc92525
mov byte [esp + 0x10], 0
mov edx, 0xf71c
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx - 0xf718]
lea edi, [edx - 0xf700]
and edi, esi
or esi, edx
not esi
or esi, edi
lea ebx, [esi + esi]
not ebx
add ebx, esi
add bl, 0x74
mov byte [esp + edx - 0xf718], bl
inc edx
cmp edx, 0xf729
jne 0x422b00
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
fild qword [esp + 0x18]
sub esp, 0x10
lea eax, [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
fstp qword [esp + 8]
call fcn.004062e0
add esp, 0x10
mov esi, eax
movzx eax, byte [esp + 0x78]
mov dword [esp + 4], 0x28d516e1
mov dword [esp + 8], 0x2d2fdad9
mov word [esp + 0xc], 0xb1dd
mov dword [esp + 0xe], 0
mov ecx, 0x9e
mov edx, 0x61
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x9a]
mov edi, ecx
or edi, ebx
not ebx
or ebx, edx
and ebx, edi
add bl, 0xea
mov byte [esp + ecx - 0x9a], bl
inc ecx
dec edx
cmp ecx, 0xac
jne 0x422b90
push eax
lea ebx, [esp + 8]
push ebx
push dword [ebp + 0x14]
call fcn.00406370
add esp, 0xc
mov edi, eax
movzx eax, byte [esp + 0x79]
mov dword [esp + 4], 0x272a15e0
mov dword [esp + 8], 0x272026d7
mov dword [esp + 0xc], 0xb129
mov byte [esp + 0x10], 0
or edi, esi
xor ecx, ecx
nop
mov edx, ecx
add dl, 0x1e
xor dl, byte [esp + ecx + 4]
add dl, 0x6a
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0xd
jne 0x422bf0
push eax
push ebx
push dword [ebp + 0x14]
call fcn.00406370
add esp, 0xc
or edi, eax
sete cl
mov eax, dword [esp + 0x14]
and al, cl
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret