Function at 0x43e330
Capabilities:
Encode data using xor

Disassembly:
push esi
sub esp, 0x14
mov eax, dword [esp + 0x1c]
mov ecx, 0x61cb0cd2
mov dword [esp + 0x10], eax
mov eax, dword [0x499664]
and eax, 0x6da927c2
mov dword [0x499664], eax
mov eax, dword [0x495698]
and eax, 0xa67d1b47
mov dword [0x495698], eax
mov eax, dword [0x497484]
xor eax, 0x25653412
mov dword [0x497484], eax
mov eax, dword [esp + 0x10]
mov edx, esp
mov dword [edx], eax
mov dword [esp + 4], ecx
call fcn.00452ba0
mov dword [esp + 8], eax
mov eax, dword [0x498118]
and eax, 0x284e1b0b
mov ecx, dword [0x496c00]
or ecx, eax
mov dword [0x496c00], ecx
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov si, word [0x49bdd0]
movsx eax, si
imul eax, eax, 0x41bde8df
mov ecx, dword [esp + 4]
cmp ecx, eax
jl 0x43e40a
mov eax, dword [0x498e08]
mov ecx, dword [0x4942d8]
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xb0b9920f
cmp eax, 0x656a6589
jne 0x43e3f6
mov eax, dword [0x497394]
not eax
or eax, 0x10202f52
mov dword [0x495198], eax
jmp 0x43e405
mov eax, dword [0x4980b4]
add eax, 0x4bdeed04
mov dword [0x4980b4], eax
jmp 0x43e425
mov eax, dword [0x495258]
not eax
imul eax, eax, 0x87ddd20b
mov ecx, dword [0x499a7c]
add ecx, eax
mov dword [0x499a7c], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x43e552
mov eax, dword [0x497308]
add eax, 0x1da20197
mov dword [0x497308], eax
mov eax, dword [esp + 0x10]
mov byte [eax], 0x22
mov eax, dword [0x4977ac]
mov ecx, dword [0x498e00]
imul ecx, eax
mov dword [0x498e00], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [0x4961e0]
add eax, 0x513812ef
mov dword [0x49ac88], eax
mov eax, 0xe7f6ffab
mov dword [0x4980f4], 0xa729dcc5
mov ecx, dword [esp + 8]
dec ecx
mov dword [esp + 8], ecx
mov ecx, dword [0x494628]
and ecx, 0x2192354c
cmp eax, ecx
je 0x43e4ba
mov eax, dword [0x499dc8]
and eax, 0xf062c6b0
mov dword [0x499dc8], eax
jmp 0x43e4bf
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x43e47f
mov ax, word [0x49da5e]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49da5e], ax
movsx ecx, ax
imul ecx, ecx, 0xe82e61c
and ecx, 0x107f29c4
mov ax, word [0x49e900]
mov dx, ax
inc edx
mov ax, dx
mov word [0x49e900], ax
movsx edx, ax
xor edx, 0x31602800
cmp ecx, edx
jl 0x43e529
mov eax, dword [0x498c2c]
add eax, 0xedf078ed
mov dword [0x498c2c], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx + 1]
mov dword [esp + 0xc], eax
mov eax, dword [0x494a84]
mov ecx, dword [0x496570]
imul ecx, eax
mov dword [0x496570], ecx
jmp 0x43e6bd
mov eax, 0x164afb1f
mov ecx, dword [0x493dbc]
cmp eax, ecx
jge 0x43e574
mov eax, dword [0x49794c]
xor eax, 0xe29ffff3
mov dword [0x49794c], eax
mov eax, dword [esp + 0x10]
mov byte [eax], 0x20
mov eax, dword [0x497dc0]
add eax, 0xee888752
mov dword [0x497dc0], eax
mov eax, dword [0x499dcc]
mov ecx, dword [0x49a014]
xor eax, ecx
xor eax, 0x9011691
mov dword [0x49a014], eax
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov dx, word [0x49b8ac]
movsx eax, dx
sar eax, 9
add eax, 0x3f82c30d
or eax, 0x3ed4d8c9
mov ecx, dword [0x495100]
add ecx, eax
mov dword [0x495100], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x20
jne 0x43e58a
mov eax, 0x688fe7f7
mov ecx, dword [0x49a100]
not ecx
add ecx, 0x5583db0b
mov dx, word [0x49d25a]
movsx esi, dx
sub ecx, esi
cmp eax, ecx
jne 0x43e64d
mov eax, 0x17b3f915
mov ecx, dword [0x498c00]
sar ecx, 8
add ecx, 0xc30c9ca1
cmp eax, ecx
jg 0x43e648
mov eax, dword [0x49a638]
mov ecx, eax
inc ecx
mov dword [0x49a638], ecx
xor eax, 0xc5cb18fb
mov ecx, dword [0x496e84]
add ecx, eax
mov dword [0x496e84], ecx
jmp 0x43e686
mov eax, 0x862be076
mov ecx, dword [0x496574]
xor ecx, 0xffffffff
or ecx, 0xeb5c28d4
cmp eax, ecx
jg 0x43e681
mov ax, word [0x49bfb4]
mov cx, ax
imul ecx, ecx, 0x11d6c15d
mov ax, cx
mov word [0x49bfb4], ax
jmp 0x43e686
mov eax, 0xd91714a3
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
lea ecx, [ecx + edx + 1]
mov dword [esp + 0xc], ecx
mov ecx, dword [0x49554c]
cmp eax, ecx
jge 0x43e6b8
mov eax, dword [0x497f50]
add eax, 0xdad00e56
mov dword [0x497f50], eax
jmp 0x43e6bd
mov ax, word [0x49d24e]
movsx ecx, ax
mov edx, dword [0x4998a8]
imul ecx, edx
imul ecx, ecx, 0x3b7338c2
mov dword [0x4998a8], ecx
mov eax, dword [esp + 0xc]
add esp, 0x14
pop esi
ret