Function at 0x42aa10
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov al, byte [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov esi, 0xbab7d2f1
mov byte [esp + 0x2f], al
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov di, word [0x49bdda]
mov dx, di
mov ebx, edx
dec ebx
mov di, bx
mov word [0x49bdda], di
mov ebx, dword [0x49fb58]
mov ebp, ebx
inc ebp
mov dword [0x49fb58], ebp
imul ebx, ebx, 0x7d92cca8
xor edx, ebx
mov di, word [0x498ace]
mov bx, di
xor ebx, edx
mov di, bx
mov word [0x498ace], di
mov edx, dword [0x49d97c]
and edx, 0x11a0
or edx, 0xc21b
mov di, dx
mov word [0x49bbfe], di
mov edx, dword [0x4a59bc]
xor edx, 0xffffffff
add edx, 0xc800de4b
cmp esi, edx
mov dword [esp + 0x14], ecx
jl 0x42aac3
mov ax, word [0x4978e0]
mov cx, ax
add ecx, 0xdf4332eb
mov ax, cx
mov word [0x4978e0], ax
mov eax, 0x4100b910
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov dword [edx + 0x2020], ecx
mov si, word [0x499eb6]
movsx ecx, si
sub ecx, 0x2c81de7f
cmp eax, ecx
jle 0x42ab09
mov eax, dword [0x4a8efc]
sar eax, 7
xor eax, 0x99101bfd
mov ecx, dword [0x4a0704]
add ecx, eax
mov dword [0x4a0704], ecx
jmp 0x42ab0e
mov eax, dword [0x49f9fc]
imul eax, eax, 0xa5ed66ac
mov cx, word [0x495b6c]
mov dx, cx
dec edx
mov cx, dx
mov word [0x495b6c], cx
movsx edx, cx
sub eax, edx
mov edx, dword [0x4a96bc]
and edx, eax
mov dword [0x4a96bc], edx
call fcn.004371d0
mov dword [esp + 0x1c], eax
mov cx, word [0x499320]
movsx eax, cx
and eax, 0x9beadbe8
mov edx, dword [0x4a7494]
add edx, eax
mov dword [0x4a7494], edx
cmp dword [esp + 0x1c], 0
setne al
xor al, 0xff
test al, 1
jne 0x42ab0e
mov eax, 0xf5a6daff
mov ecx, dword [0x4a2af4]
mov edx, dword [0x49c580]
sub ecx, edx
and ecx, 0xc6fc8f0e
mov dword [0x49f364], ecx
mov dword [esp + 0x10], eax
call fcn.004371d0
mov dword [esp + 0x20], eax
mov eax, dword [0x4a2c78]
and eax, 0x175f7cea
mov dword [0x4a2c78], eax
mov bl, byte [esp + 0x2f]
mov byte [esp + 0x20], bl
mov eax, dword [0x49d0b4]
add eax, 0xdc105917
mov dword [0x49d0b4], eax
mov eax, dword [esp + 0x1c]
mov ecx, esp
mov dword [ecx], eax
call fcn.00439160
mov ecx, dword [esp + 0x20]
xor ecx, eax
mov dword [esp + 0x20], ecx
mov si, word [0x4956cc]
movsx eax, si
or eax, 0xcd081c40
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jg 0x42ac0c
mov eax, dword [0x4a916c]
add eax, 0x8952e428
mov dword [0x4a916c], eax
mov eax, dword [0x493f88]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x2020]
mov esi, esp
lea edi, [esp + 0x1c]
mov dword [esi + 4], edi
mov dword [esi], edx
mov dword [esi + 0xc], 0
mov dword [esi + 8], 8
call eax
sub esp, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x4aac48]
add eax, 0x991bbb19
mov dword [0x4aac48], eax
cmp dword [esp + 0x18], 8
je 0x42ac91
mov eax, dword [0x4a781c]
sar eax, 5
and eax, 0x2eeb7b35
mov ecx, dword [0x4a686c]
sub ecx, eax
mov dword [0x4a686c], ecx
mov ecx, dword [esp + 0x14]
call fcn.0042ed20
mov word [0x4944fc], 0x7828
mov dword [esp + 0x30], 0xffffffff
jmp 0x42ae30
mov eax, dword [0x4a98f4]
imul eax, eax, 0xd4508ebf
mov dword [0x4a98f4], eax
mov cl, byte [esp + 0x2f]
movzx eax, cl
mov edx, esp
mov dword [edx], eax
mov ecx, dword [esp + 0x14]
call fcn.0042b690
sub esp, 4
test al, 1
jne 0x42ad19
mov eax, dword [0x4a3df4]
mov ecx, dword [0x49f110]
mov edx, ecx
dec edx
mov dword [0x49f110], edx
mov edx, 0x7acf126d
sub edx, ecx
and eax, edx
mov si, word [0x496a7c]
mov cx, si
xor ecx, eax
mov si, cx
mov word [0x496a7c], si
mov ecx, dword [esp + 0x14]
call fcn.0042ed20
mov eax, dword [0x49d654]
imul eax, eax, 0xf1dff79b
mov dword [0x49d654], eax
mov dword [esp + 0x30], 0xfffffffe
jmp 0x42ae30
mov eax, 0x19d83211
mov ecx, dword [0x4aa198]
mov edx, ecx
inc edx
mov dword [0x4aa198], edx
imul ecx, ecx, 0xb3384a64
mov edx, dword [0x4a862c]
xor edx, ecx
mov dword [0x4a862c], edx
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
mov si, word [0x49b972]
movsx edx, si
imul edx, edx, 0x96e5f838
mov si, word [0x495c2e]
mov di, si
inc edi
mov bx, di
mov word [0x495c2e], bx
movsx edi, si
and edx, edi
cmp eax, edx
jl 0x42ad91
mov eax, dword [0x49ef34]
xor eax, 0x49382633
mov dword [0x49ef34], eax
jmp 0x42adca
mov eax, dword [0x4a00a4]
mov cx, word [0x49a996]
mov dx, cx
inc edx
mov cx, dx
mov word [0x49a996], cx
movsx edx, cx
cmp eax, edx
jge 0x42adc5
mov eax, dword [0x4ab684]
and eax, 0x71bd9fff
mov dword [0x4ab684], eax
jmp 0x42adca
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 4], eax
mov eax, dword [0x4a549c]
imul eax, eax, 0xce5cf104
mov dword [0x4a84e4], eax
mov dword [ecx + 0x100c], 0
mov eax, dword [0x4ab58c]
imul eax, eax, 0xd3f71911
mov dword [0x4ab58c], eax
mov eax, dword [ecx + 0x201c]
mov edx, dword [esp + 0x1c]
mov esi, esp
mov dword [esi], edx
call eax
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1010], eax
mov eax, dword [0x49fa34]
or eax, 0x61558df0
mov dword [0x49fa34], eax
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret 8