Function at 0x435590
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov al, byte [esp + 0x48]
mov edx, dword [esp + 0x44]
mov byte [esp + 0x2b], al
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov edx, dword [0x49fbec]
shl edx, 5
add edx, 0x7644ccf4
mov esi, dword [0x4950b8]
shl esi, 3
cmp edx, esi
mov dword [esp + 0x10], ecx
je 0x4355e7
mov ax, word [0x4a66c6]
mov cx, ax
and ecx, 0x8bab
mov ax, cx
mov word [0x4a66c6], ax
mov eax, dword [0x494c78]
add eax, 0x88e038a0
mov dword [0x494c78], eax
mov eax, dword [0x49e988]
add eax, 0xf0eddad4
mov dword [0x49e988], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x2020], eax
mov dx, word [0x4a83f8]
movsx eax, dx
add eax, 0x33040597
mov esi, dword [0x49e334]
and esi, eax
mov dword [0x49e334], esi
mov dword [0x49aa90], 0x1bfe52cf
call fcn.004162e0
mov dword [esp + 0x18], eax
mov eax, dword [0x49c264]
and eax, 0xa141e576
mov dword [0x49c264], eax
cmp dword [esp + 0x18], 0
setne al
xor al, 0xff
test al, 1
jne 0x435630
mov eax, 0x20ab0
mov ecx, dword [0x49d458]
not ecx
mov edx, dword [0x49fd18]
dec edx
mov dword [0x49fd18], edx
sub ecx, edx
sub ecx, 0x453c9687
cmp eax, ecx
jne 0x4356a2
mov eax, dword [0x49eab8]
add eax, 0xe0a55bd0
mov dword [0x49eab8], eax
jmp 0x4356b2
mov eax, dword [0x49b5e0]
imul eax, eax, 0x9206d723
mov dword [0x49b5e0], eax
call fcn.004162e0
mov dword [esp + 0x1c], eax
mov cx, word [0x4a5a9e]
movsx eax, cx
xor eax, 0x2f529d0c
mov edx, dword [0x49c104]
or edx, eax
mov dword [0x49c104], edx
mov bl, byte [esp + 0x2b]
mov byte [esp + 0x1c], bl
mov eax, dword [0x49d560]
mov edx, eax
dec edx
mov dword [0x49d560], edx
mov cx, word [0x4a50d6]
movsx edx, cx
imul edx, edx, 0x448ebfed
sub eax, edx
mov edx, dword [0x495a7c]
sub edx, eax
mov dword [0x495a7c], edx
mov eax, dword [esp + 0x18]
mov edx, esp
mov dword [edx], eax
call fcn.0043a570
mov edx, dword [esp + 0x1c]
xor edx, eax
mov dword [esp + 0x1c], edx
mov eax, dword [0x49be3c]
or eax, 0x15fe41ea
mov dword [0x498ff8], eax
mov eax, dword [0x493b88]
mov edx, dword [esp + 0x10]
mov esi, dword [edx + 0x2020]
mov edi, esp
lea ebp, [esp + 0x18]
mov dword [edi + 4], ebp
mov dword [edi], esi
mov dword [edi + 0xc], 0
mov dword [edi + 8], 8
call eax
sub esp, 0x10
mov dword [esp + 0x14], eax
mov eax, dword [0x4a0ac0]
mov edx, eax
dec edx
mov dword [0x4a0ac0], edx
mov edx, 0x1e09486f
sub edx, eax
mov dword [0x49b374], edx
cmp dword [esp + 0x14], 8
je 0x4357e8
mov eax, dword [0x4a143c]
inc eax
mov dword [0x4a143c], eax
imul eax, eax, 0x52c69acb
xor eax, 0x1d4ff406
mov ecx, dword [0x4a0bbc]
sub ecx, eax
mov dword [0x4a0bbc], ecx
mov ecx, dword [esp + 0x10]
call fcn.0042c530
mov eax, dword [0x49c54c]
inc eax
mov dword [0x49c54c], eax
mov ecx, dword [0x498fa0]
not ecx
and eax, ecx
mov ecx, dword [0x4a06c4]
add ecx, eax
mov dword [0x4a06c4], ecx
mov dword [esp + 0x2c], 0xffffffff
jmp 0x435937
mov eax, dword [0x498938]
mov ecx, dword [0x49bbd0]
shr ecx, 4
and eax, ecx
mov dx, ax
mov word [0x4a24d4], dx
mov bl, byte [esp + 0x2b]
movzx eax, bl
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x10]
call fcn.00417cf0
sub esp, 4
test al, 1
jne 0x435876
mov dword [0x49f380], 0x85edd9c5
mov ecx, dword [esp + 0x10]
call fcn.0042c530
mov ax, word [0x4a71b8]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4a71b8], ax
movsx ecx, ax
mov edx, dword [0x496388]
mov esi, edx
dec esi
mov dword [0x496388], esi
sub ecx, edx
mov edx, dword [0x498ffc]
xor edx, ecx
mov dword [0x498ffc], edx
mov dword [esp + 0x2c], 0xfffffffe
jmp 0x435937
mov eax, 0xcc1b01a8
mov cx, word [0x4a3f1e]
movsx edx, cx
sub edx, 0xdac5a84a
cmp eax, edx
jle 0x4358b3
mov eax, dword [0x494c3c]
or eax, 0xa390
mov cx, word [0x4a7f20]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x4a7f20], cx
mov eax, dword [esp + 0x10]
mov dword [eax], 0
mov ecx, dword [0x49f550]
add ecx, 0x54cf702a
mov dword [0x49f550], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 4], ecx
mov ecx, dword [0x499688]
imul ecx, ecx, 0x8d1eb3f
mov dword [0x499688], ecx
mov dword [eax + 0x100c], 0
mov dword [0x49f184], 0x1a2d0a3b
mov ecx, dword [eax + 0x201c]
mov edx, dword [esp + 0x18]
mov esi, esp
mov dword [esi], edx
call ecx
mov ecx, dword [esp + 0x10]
mov dword [ecx + 0x1010], eax
mov di, word [0x4a523c]
mov ax, di
add eax, 0x801793ed
mov di, ax
mov word [0x4a523c], di
mov dword [esp + 0x2c], 1
mov eax, dword [esp + 0x2c]
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret 8