Function at 0x443100
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 0x34
mov al, byte [esp + 0x48]
mov edx, dword [esp + 0x44]
mov byte [esp + 0x2f], al
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], ecx
mov edx, dword [0x496578]
mov esi, dword [0x499a64]
imul edx, esi
mov esi, dword [0x497fbc]
add esi, edx
mov dword [0x497fbc], esi
mov edx, dword [0x494498]
mov esi, edx
inc esi
mov dword [0x494498], esi
mov esi, dword [0x497dcc]
sar esi, 3
xor edx, esi
or edx, 0x9a043f98
mov esi, dword [0x4994b8]
sar esi, 8
imul esi, esi, 0x2d9ececf
xor esi, 0xf87d9909
cmp edx, esi
mov dword [esp + 0x14], ecx
jge 0x443187
mov eax, dword [0x4949a8]
add eax, 0x6d9effbb
mov dword [0x4949a8], eax
mov eax, dword [0x49a190]
add eax, 0x2050112
mov dword [0x49a190], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x2020], eax
mov dx, word [0x49cb06]
mov ax, dx
xor eax, 0x804c
mov dx, ax
mov word [0x49cb06], dx
mov eax, dword [0x494ab4]
imul eax, eax, 0x85002502
mov dword [0x494ab4], eax
call fcn.00436320
mov dword [esp + 0x1c], eax
mov dword [0x49a328], 0x4095968d
cmp dword [esp + 0x1c], 0
setne al
xor al, 0xff
test al, 1
jne 0x4431bd
mov eax, 0x119f0476
mov ecx, dword [0x49861c]
dec ecx
mov dword [0x49861c], ecx
mov edx, dword [0x4960ac]
mov esi, edx
inc esi
mov dword [0x4960ac], esi
and edx, 0x6433f9e
xor ecx, edx
cmp eax, ecx
jne 0x443251
mov eax, dword [0x4998b4]
mov ecx, eax
dec ecx
mov dword [0x4998b4], ecx
and eax, 0x9262
or eax, 0x4580
mov dx, word [0x49d852]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x49d852], dx
mov eax, 0x5aaa7a7a
mov dword [esp + 0x10], eax
call fcn.00436320
mov dword [esp + 0x20], eax
mov eax, dword [0x496d74]
sar eax, 5
mov ecx, dword [esp + 0x10]
cmp ecx, eax
jl 0x443286
mov eax, dword [0x495740]
add eax, 0x93d97749
mov dword [0x495740], eax
mov al, byte [esp + 0x2f]
mov byte [esp + 0x20], al
mov ecx, dword [0x49b010]
dec ecx
mov dword [0x49b010], ecx
imul ecx, ecx, 0x707f422a
cmp ecx, 0x90f1c3c6
jg 0x4432c1
mov eax, dword [0x494afc]
add eax, 0xdcc18b87
mov dword [0x494afc], eax
jmp 0x4432d0
mov eax, dword [0x498fd8]
and eax, 0xd010ae68
mov dword [0x498fd8], eax
mov eax, dword [esp + 0x1c]
mov ecx, esp
mov dword [ecx], eax
call fcn.0040b2a0
mov ecx, dword [esp + 0x20]
xor ecx, eax
mov dword [esp + 0x20], ecx
mov dx, word [0x49cf86]
movsx eax, dx
imul eax, eax, 0xe77f5eda
mov ecx, dword [0x4969d4]
or ecx, eax
mov dword [0x4969d4], ecx
mov eax, dword [0x493b88]
mov ecx, dword [esp + 0x14]
mov esi, dword [ecx + 0x2020]
mov edi, esp
lea ebx, [esp + 0x1c]
mov dword [edi + 4], ebx
mov dword [edi], esi
mov dword [edi + 0xc], 0
mov dword [edi + 8], 8
call eax
sub esp, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [0x4970f4]
and eax, 0x5c2f32b8
mov dword [0x4970f4], eax
cmp dword [esp + 0x18], 8
je 0x443388
mov eax, dword [0x4994f8]
or eax, 0x1594cb52
mov dword [0x4994f8], eax
mov ecx, dword [esp + 0x14]
call fcn.00428ba0
mov eax, dword [0x499ce8]
mov ecx, dword [0x497080]
and ecx, eax
mov dword [0x497080], ecx
mov dword [esp + 0x30], 0xffffffff
jmp 0x4434f2
mov eax, dword [0x496814]
and eax, 0x7e139069
mov dword [0x496814], eax
mov cl, byte [esp + 0x2f]
movzx eax, cl
mov edx, esp
mov dword [edx], eax
mov ecx, dword [esp + 0x14]
call fcn.00440410
sub esp, 4
test al, 1
jne 0x4433f6
mov eax, dword [0x498c68]
add eax, 0x78bcc7be
mov dword [0x498c68], eax
mov ecx, dword [esp + 0x14]
call fcn.00428ba0
mov eax, dword [0x499cb4]
mov dx, word [0x49c12a]
mov cx, dx
and ecx, eax
mov dx, cx
mov word [0x49c12a], dx
mov dword [esp + 0x30], 0xfffffffe
jmp 0x4434f2
mov eax, dword [0x4962f4]
add eax, 0x2123e9c5
and eax, 0xae68adfe
mov ecx, dword [0x494a34]
add ecx, 0x446f4760
add ecx, 0x52bf4480
cmp eax, ecx
jne 0x44342e
mov eax, dword [0x495b10]
add eax, 0xe31ea78a
mov dword [0x495b10], eax
mov eax, 0xe8f3caa3
mov ecx, dword [esp + 0x14]
mov dword [ecx], 0
mov edx, dword [0x497c68]
xor edx, 0x7443a3b8
mov dword [0x497c68], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx + 4], edx
mov si, word [0x49bd78]
movsx edx, si
shl edx, 5
cmp eax, edx
jl 0x44347f
mov eax, dword [0x498458]
mov ecx, dword [0x4960f0]
imul ecx, eax
mov dword [0x4960f0], ecx
mov eax, 0x40404012
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x100c], 0
mov edx, dword [0x497cd8]
cmp eax, edx
je 0x4434af
mov eax, dword [0x494a94]
xor eax, 0x80040080
mov dword [0x494a94], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x201c]
mov edx, dword [esp + 0x1c]
mov esi, esp
mov dword [esi], edx
call ecx
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x1010], eax
mov eax, dword [0x494ef0]
add eax, 0xf5040a4
and eax, 0x60e5d1a7
mov edx, dword [0x496288]
xor edx, eax
mov dword [0x496288], edx
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
add esp, 0x34
pop esi
pop edi
pop ebx
ret 8