Function at 0x4232c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov ecx, dword [ebp + 8]
xor eax, eax
cmp byte [ebp + 0x18], 0
setne al
lea eax, [eax*8 + 0x120]
lea edx, [esp + 0x2c]
push 0
push 0
push eax
push edx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.0043f390
xor ebx, ebx
test eax, eax
js 0x42388e
mov dword [esp + 8], 0x62697c76
mov byte [esp + 0xc], 0xd8
mov dword [esp + 0xd], 0
mov word [esp + 0x11], 0
mov eax, 0x1e64e440
mov ecx, 0xe19b1bc1
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 4], ebx
movzx edi, byte [esp + ebx + 8]
mov ebx, dword [esp + 4]
xor ebx, 0xce325def
lea edx, [eax + ebx]
and edx, edi
add edx, edx
lea esi, [ebx + edi]
sub esi, edx
sub edx, ebx
mov ebx, dword [esp + 4]
add esi, eax
sub edx, edi
lea edi, [esi + esi]
and edi, 2
add edx, ecx
and edx, 1
or esi, 1
sub edx, esi
add edx, 0x9ef44aeb
xor edx, 0xfffffffe
mov esi, edx
and esi, edi
xor edx, edi
lea edx, [edx + esi*2]
mov byte [esp + ebx + 8], dl
inc ebx
add eax, 2
add ecx, 0xfffffffe
cmp ebx, 0xb
jne 0x423330
cmp byte [esp + 0x4b], 0
js 0x4233af
lea eax, [esp + 0x34]
lea ecx, [esp + 8]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
mov al, 1
mov dword [esp + 4], eax
jmp 0x42340c
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov eax, esi
or eax, ebx
je 0x423404
mov edi, dword [esp + 0x3c]
inc edi
push edi
call fcn.0040ce10
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push edi
mov edi, eax
push eax
push ebx
push esi
call fcn.0043f390
test eax, eax
setns bl
js 0x4233f5
lea eax, [esp + 8]
push edi
push eax
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
mov dword [esp + 4], ebx
push edi
call fcn.0040ce20
add esp, 4
jmp 0x42340c
mov dword [esp + 4], 0
movzx eax, byte [ebp + 0x18]
mov dword [esp + 0x18], eax
lea eax, [eax*8 + 0xe8]
mov dword [esp + 8], 0xaaa2a8b2
mov word [esp + 0xc], 0xd5b9
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
lea ecx, [esp + 8]
mov edx, 0x257a5db1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [ecx]
mov esi, edx
or esi, edi
lea ebx, [edx - 0x257a5d00]
and ebx, edi
not esi
or esi, ebx
add esi, 0xbb63d479
mov edi, esi
and edi, 1
xor esi, 1
lea ebx, [esi + edi*2]
mov byte [ecx], bl
inc ecx
dec edx
cmp edx, 0x257a5da5
jne 0x423450
lea ecx, [esp + eax]
add ecx, 0x2c
cmp byte [esp + eax + 0x43], 0
js 0x4234a6
lea eax, [esp + 8]
push ecx
push eax
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
mov al, 1
mov ebx, dword [esp + 4]
jmp 0x4234fd
mov esi, dword [ecx]
mov edi, dword [ecx + 4]
mov eax, esi
or eax, edi
je 0x4235dd
mov ebx, dword [ecx + 8]
inc ebx
push ebx
call fcn.0040ce10
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push esi
call fcn.0043f390
test eax, eax
setns al
mov esi, eax
js 0x4234ee
lea eax, [esp + 8]
push ebx
push eax
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
push ebx
call fcn.0040ce20
add esp, 4
mov ebx, dword [esp + 4]
mov eax, esi
and bl, al
mov dword [esp + 8], 0x5073a34
mov dword [esp + 0xc], 0x23d3229
mov byte [esp + 0x10], 0x84
mov dword [esp + 0x11], 0
mov word [esp + 0x15], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 8]
mov edi, eax
and edi, 6
mov edx, ecx
xor edx, 0x181a69a3
add edx, edi
xor edx, esi
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xd0
mov byte [esp + ecx + 8], dl
inc ecx
add eax, 2
cmp ecx, 0xf
jne 0x423530
cmp byte [esp + 0x63], 0
js 0x423580
lea eax, [esp + 0x4c]
lea ecx, [esp + 8]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
mov al, 1
jmp 0x4235e6
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x50]
mov eax, esi
or eax, edi
je 0x4235e4
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x54]
inc ebx
push ebx
call fcn.0040ce10
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push esi
call fcn.0043f390
test eax, eax
setns al
mov esi, eax
js 0x4235cc
lea eax, [esp + 8]
push ebx
push eax
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
push ebx
call fcn.0040ce20
add esp, 4
mov ebx, dword [esp + 4]
mov eax, esi
jmp 0x4235e6
xor eax, eax
jmp 0x4234a0
xor eax, eax
and bl, al
mov dword [esp + 8], 0x1b160010
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
mov ecx, eax
add cl, 0x68
xor cl, byte [esp + eax + 8]
add cl, 0xf8
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 0xb
jne 0x423610
cmp byte [esp + 0x7b], 0
js 0x423646
lea eax, [esp + 0x64]
lea ecx, [esp + 8]
push eax
push ecx
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
mov al, 1
jmp 0x4236a5
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x68]
mov eax, esi
or eax, edi
je 0x4236a3
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x6c]
inc ebx
push ebx
call fcn.0040ce10
add esp, 4
mov ecx, dword [ebp + 8]
push 0
push 0
push ebx
mov ebx, eax
push eax
push edi
push esi
call fcn.0043f390
test eax, eax
setns al
mov esi, eax
js 0x423692
lea eax, [esp + 8]
push ebx
push eax
push dword [ebp + 0x14]
call fcn.00406200
add esp, 0xc
push ebx
call fcn.0040ce20
add esp, 4
mov ebx, dword [esp + 4]
mov eax, esi
jmp 0x4236a5
xor eax, eax
and bl, al
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + ecx*8 + 0x12c]
mov ecx, dword [esp + ecx*8 + 0x130]
mov dword [esp + 8], 0xaaa299ad
mov dword [esp + 0xc], 0x485d505e
mov dword [esp + 0x10], 0xeb496565
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
mov edx, 0x2b50fafc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + edx - 0x2b50faf4]
xor esi, edx
mov ebx, esi
xor ebx, 0xec
or esi, 0x276b1913
and ebx, esi
add ebx, esi
inc bl
mov byte [esp + edx - 0x2b50faf4], bl
inc edx
cmp edx, 0x2b50fb0b
jne 0x4236f0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
fild qword [esp + 0x20]
sub esp, 0x10
lea eax, [esp + 0x18]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
fstp qword [esp + 8]
call fcn.00406250
add esp, 0x10
mov dword [esp + 0x18], eax
movzx edi, byte [esp + 0x84]
mov dword [esp + 8], 0xa49ba6ab
mov dword [esp + 0xc], 0xbbbd8a93
mov word [esp + 0x10], 0x238f
mov dword [esp + 0x12], 0
mov word [esp + 0x16], 0
mov ecx, 0x4b
mov edx, 0xb4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x43]
mov ebx, ecx
xor ebx, edx
and ebx, esi
xor ebx, edx
mov al, 0x88
sub al, bl
mov byte [esp + ecx - 0x43], al
inc ecx
dec edx
cmp ecx, 0x5b
jne 0x423790
push edi
lea eax, [esp + 0xc]
push eax
push dword [ebp + 0x14]
call fcn.004062e0
add esp, 0xc
movzx ecx, byte [esp + 0x85]
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], 0x211a1b64
mov dword [esp + 0xc], 0x595c2251
mov word [esp + 0x10], 0xb72f
mov dword [esp + 0x12], 0
mov word [esp + 0x16], 0
or eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, 0x880bb0dd
mov edx, 0x77f44f22
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x77f44f2b]
mov ebx, edx
and ebx, 0x76104002
mov ecx, eax
and ecx, 0x8809203d
or ecx, ebx
xor esi, 0x7612d0c2
mov edi, esi
and edi, ecx
add edi, edi
add esi, ecx
mov ebx, esi
sub ebx, edi
and esi, 1
mov ecx, 0x51
sub ecx, ebx
add ebx, 0x2e
and ecx, 0xbe
and ebx, 0x41
or ebx, ecx
xor ebx, 0xbf
lea ecx, [ebx + esi*2]
mov byte [esp + eax + 0x77f44f2b], cl
inc eax
dec edx
cmp eax, 0x880bb0ed
jne 0x423810
push dword [esp + 0x1c]
lea eax, [esp + 0xc]
push eax
push dword [ebp + 0x14]
call fcn.004062e0
add esp, 0xc
or dword [esp + 0x18], eax
sete al
mov ebx, dword [esp + 4]
and bl, al
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret