Function at 0x1bf490
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x158
mov edi, edx
mov esi, ecx
call fcn.001a47a0
mov dword [esp + 0x28], eax
push eax
call fcn.001a4400
add esp, 4
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edi
mov edi, dword [edi + 0x3c]
lea ebx, [esp + 0x30]
push 0x120
push 0
push ebx
call fcn.001ac6c0
add esp, 0xc
mov dword [esp + 0x1c], esi
mov ecx, esi
push 0
push 0
push 0x120
push ebx
push edi
push dword [esp + 0x34]
call fcn.001df850
test eax, eax
js 0x1bf933
mov dword [esp + 8], 0x5259545e
mov byte [esp + 0xc], 0xc8
mov dword [esp + 0xd], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x1bf57a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0x55298fd3
and eax, 0xd5298fd3
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
mov ecx, eax
xor ecx, 0x1f
and eax, 0x60
add eax, eax
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x1bf530
lea edx, [esp + 0x38]
lea eax, [esp + 8]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
push esi
push eax
call fcn.001bf9f0
add esp, 8
mov ebx, eax
mov dword [esp + 8], 0xcec6d0ce
mov dword [esp + 0xc], 0x7dd1
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x1bf60e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx eax, byte [esp + eax + 8]
mov edx, ecx
not edx
or edx, 0x7b91e094
add edx, ecx
xor ecx, 0x7b91e094
lea edi, [ecx + edx*2]
lea ecx, [ecx + edx*2]
add ecx, 2
lea edx, [eax + edi]
add edx, 2
and ecx, eax
add ecx, ecx
sub edx, ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0x1c
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x1bf5c0
lea edx, [esp + 0x118]
mov edi, dword [esp + 0x1c]
mov ecx, edi
push esi
lea eax, [esp + 0xc]
push eax
call fcn.001bf9f0
add esp, 8
mov dword [esp + 8], 0xaba9aab0
mov dword [esp + 0xc], 0x5a47b2bf
mov byte [esp + 0x10], 0xe0
mov dword [esp + 0x11], 0
mov dword [esp + 0x14], 0
and bl, al
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x1bf6a1
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0xd7dc4f7a
and eax, 0xd7dc4f7a
lea eax, [edx + eax*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x9e
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x1bf660
lea edx, [esp + 0x50]
mov ecx, edi
push esi
lea eax, [esp + 0xc]
push eax
call fcn.001bf9f0
add esp, 8
mov dword [esp + 8], 0x196a0414
mov byte [esp + 0xc], 0xe0
mov dword [esp + 0xd], 0
and bl, al
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x1bf723
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0xa9cdc029
mov edi, eax
xor edi, 0x56323fd6
or eax, 0x29cdc029
and eax, edi
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x33
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x1bf6e0
lea edx, [esp + 0x68]
mov ecx, dword [esp + 0x1c]
push esi
lea eax, [esp + 0xc]
push eax
call fcn.001bf9f0
add esp, 8
fild qword [esp + 0x130]
mov dword [esp + 8], 0xaaa2b9ad
mov dword [esp + 0xc], 0x88bdb0be
mov dword [esp + 0x10], 0x2b89a5a5
mov word [esp + 0x14], 0
and bl, al
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x1bf7a9
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
xor edx, 0xd66bb98c
and eax, 0xd66bb98c
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x44
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x1bf770
sub esp, 0x10
fstp qword [esp + 8]
lea eax, [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.001a5b70
add esp, 0x10
test eax, eax
sete cl
movzx eax, byte [esp + 0x88]
mov dword [esp + 8], 0xa4afbaa7
mov dword [esp + 0xc], 0xa7a5b6b7
mov dword [esp + 0x10], 0x57b3
and bl, cl
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xb
ja 0x1bf85a
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edi, byte [esp + edx + 8]
mov edx, ecx
xor edx, 0x9efe338d
and ecx, 0x1efe338d
lea ecx, [edx + ecx*2]
mov edx, ecx
and edx, edi
xor ecx, edi
lea ecx, [ecx + edx*2]
mov edi, ecx
not edi
and edi, edx
mov esi, edx
not esi
and ecx, esi
sub ecx, edi
mov edi, ecx
not edi
and edi, edx
and ecx, esi
sub ecx, edi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x3f
mov edx, dword [esp]
mov byte [esp + edx + 8], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xc
jb 0x1bf800
push eax
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x2c]
call fcn.001a5c00
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
movzx eax, bl
not eax
or ecx, eax
movzx edx, byte [esp + 0x88]
mov dword [esp + 0x20], edx
mov dword [esp + 8], 0xf3f6f5f8
mov dword [esp + 0xc], 0xfbf8facb
mov word [esp + 0x10], 0x59d1
mov dword [esp + 0x12], 0
mov dword [esp], 0
mov esi, dword [esp]
cmp esi, 0xd
ja 0x1bf90c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 8]
mov ebx, esi
xor ebx, 0x74dd3f18
mov edx, esi
xor edx, 0xb22c0e7
or esi, 0x74dd3f18
and esi, edx
lea edx, [ebx + esi*2]
lea esi, [edx + edi]
and edx, edi
add edx, edx
sub esi, edx
mov dword [esp + 4], esi
mov edx, dword [esp + 4]
add dl, 0x88
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0xe
jb 0x1bf8c0
cmp ecx, eax
setne byte [esp + 0x1b]
push dword [esp + 0x20]
lea eax, [esp + 0xc]
push eax
push dword [esp + 0x2c]
call fcn.001a5c00
add esp, 0xc
test eax, eax
sete bl
and bl, byte [esp + 0x1b]
jmp 0x1bf935
xor ebx, ebx
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov ecx, eax
or ecx, edx
je 0x1bf973
mov ecx, dword [esp + 0x1c]
push 0
push 0
push 0x40
lea edi, [esp + 0x3c]
push edi
push edx
push eax
call fcn.001df850
test eax, eax
js 0x1bf973
lea edx, [esp + 0x30]
mov ecx, dword [esp + 0x1c]
push dword [ebp + 8]
call fcn.001bf490
add esp, 4
or bl, al
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov ecx, eax
or ecx, edx
je 0x1bf9c1
mov edi, dword [esp + 0x1c]
mov ecx, edi
push 0
push 0
push 0x40
lea esi, [esp + 0x3c]
push esi
push edx
push eax
call fcn.001df850
test eax, eax
js 0x1bf9c1
lea edx, [esp + 0x30]
mov ecx, edi
push dword [ebp + 8]
call fcn.001bf490
add esp, 4
movzx eax, al
movzx ecx, bl
mov edx, eax
not edx
and edx, ecx
xor eax, ecx
add eax, ecx
cmp eax, edx
setne bl
test bl, bl
je 0x1bf9d6
push dword [esp + 0x28]
push dword [ebp + 8]
call fcn.001a5530
add esp, 8
jmp 0x1bf9e2
push dword [esp + 0x28]
call fcn.001a4670
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret