Function at 0x439910
Capabilities:
Encode data using xor

Disassembly:
push esi
sub esp, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, 0x30c42f8e
mov dword [esp + 0x10], eax
mov eax, dword [0x4956ac]
inc eax
mov dword [0x4956ac], eax
and eax, 0xb231ffea
mov dword [0x48c578], eax
mov dx, word [0x497d44]
movsx eax, dx
xor eax, 0x8feef3f4
mov esi, dword [0x49441c]
add esi, eax
mov dword [0x49441c], esi
mov eax, dword [0x496718]
mov esi, eax
dec esi
mov dword [0x496718], esi
mov esi, dword [0x490dfc]
and eax, esi
and eax, 0x5d5566aa
mov dword [0x490dfc], eax
mov eax, dword [esp + 0x10]
mov esi, esp
mov dword [esi], eax
mov dword [esp + 4], ecx
call fcn.00452ac0
mov dword [esp + 8], eax
mov eax, dword [0x492648]
sub eax, 0x284cd695
xor eax, 0xbc1521da
mov ecx, dword [esp + 4]
cmp ecx, eax
jge 0x4399f3
mov ax, word [0x49a75c]
movsx ecx, ax
shl ecx, 5
or ecx, 0x44a15ca7
cmp ecx, 0xe6929f02
jge 0x4399ee
mov ax, word [0x49be9a]
movsx ecx, ax
shl ecx, 2
add ecx, 0x908925b5
cmp ecx, 0x2a105203
jg 0x4399e4
jmp 0x4399e9
jmp 0x4399e9
jmp 0x4399ee
jmp 0x4399f3
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov eax, dword [0x48ec4c]
imul eax, eax, 0xb06b454a
mov ecx, dword [0x48d01c]
xor ecx, 0xd8acc65b
cmp eax, ecx
jge 0x439a2b
mov eax, dword [0x48b058]
imul eax, eax, 0x30ea78a5
mov dword [0x48b058], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x439b4d
mov dword [0x48fe10], 0x3b7232f7
mov eax, dword [esp + 0x10]
mov byte [eax], 0x22
mov cx, word [0x499248]
movsx eax, cx
sar eax, 8
mov cx, word [0x49d316]
mov dx, cx
dec edx
mov cx, dx
mov word [0x49d316], cx
movsx edx, cx
xor edx, 0x39dececc
or eax, edx
mov edx, dword [0x492e3c]
imul edx, eax
mov dword [0x492e3c], edx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov byte [edx + eax], 0
mov cx, word [0x497444]
mov ax, cx
add eax, 0x8513dfa3
mov cx, ax
mov word [0x497444], cx
mov ax, word [0x4974e4]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4974e4], dx
movsx ecx, ax
add ecx, 0x3f8ea9b5
and ecx, 0x82cd38df
mov esi, dword [0x48fee4]
xor esi, ecx
mov dword [0x48fee4], esi
mov ecx, dword [esp + 8]
dec ecx
mov dword [esp + 8], ecx
mov ax, word [0x49c26e]
mov cx, ax
imul ecx, ecx, 0xe548d13e
mov ax, cx
mov word [0x49c26e], ax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x439ab2
mov eax, dword [0x4922c0]
and eax, 0x8907b6b4
mov dword [0x4922c0], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx + 1]
mov dword [esp + 0xc], eax
mov eax, dword [0x494e88]
imul eax, eax, 0x3e765fab
mov dword [0x494e88], eax
jmp 0x439c90
mov ax, word [0x49ad28]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x49ad28], ax
mov edx, dword [0x494e60]
shl edx, 0xa
and ecx, edx
mov ax, word [0x49adea]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x49adea], ax
mov ecx, dword [esp + 0x10]
mov byte [ecx], 0x20
mov ecx, dword [0x4944cc]
shl ecx, 8
mov edx, dword [0x48c6ec]
and edx, 0x16965953
cmp ecx, edx
jle 0x439be2
mov eax, 0xb5adba61
mov ecx, dword [0x48f628]
xor ecx, 0xffffffff
cmp eax, ecx
jg 0x439bdd
mov eax, dword [0x490078]
mov ecx, eax
inc ecx
mov dword [0x490078], ecx
add eax, 0x270a1a41
and eax, 0x51b3
mov dx, ax
mov word [0x499a08], dx
jmp 0x439be2
jmp 0x439be7
mov eax, dword [0x48bb34]
shr eax, 2
imul eax, eax, 0x35739e2
add eax, 0xa23e6e1d
mov cx, word [0x499818]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x499818], cx
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov cx, word [0x49b06a]
mov ax, cx
and eax, 0x6699
mov cx, ax
mov word [0x49b06a], cx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x20
jne 0x439be7
mov eax, dword [0x496b14]
mov cx, word [0x49731e]
mov dx, cx
and eax, edx
and eax, 0xcf08
mov cx, ax
mov word [0x49731e], cx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
lea eax, [eax + edx + 1]
mov dword [esp + 0xc], eax
mov cx, word [0x49c0dc]
mov ax, cx
and eax, 0x2181
mov cx, ax
mov word [0x49c0dc], cx
mov eax, dword [0x491824]
xor eax, 0x60eba068
mov dword [0x491824], eax
mov eax, dword [esp + 0xc]
add esp, 0x14
pop esi
ret