Function at 0x438f60
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
sub esp, 0x304
mov eax, dword [0x49b76c]
xor eax, 0x54ba229b
mov dword [0x49b76c], eax
mov eax, dword [0x49d5cc]
cmp eax, 0
je 0x438f8a
jmp 0x4393c3
mov eax, 0x6213f220
mov ecx, dword [0x4966d0]
add ecx, 0x49d101f4
cmp eax, ecx
jl 0x438fc6
mov ax, word [0x492866]
mov cx, ax
imul ecx, ecx, 0x10952e80
mov ax, word [0x49063e]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x49063e], ax
mov eax, 0xefea7537
mov ecx, dword [0x49a880]
mov edx, ecx
inc edx
mov dword [0x49a880], edx
xor ecx, 0x113100c8
mov edx, dword [0x49ae1c]
or edx, ecx
mov dword [0x49ae1c], edx
mov ecx, dword [0x49c93c]
mov edx, ecx
inc edx
mov dword [0x49c93c], edx
cmp eax, ecx
je 0x439014
mov eax, dword [0x499cf8]
or eax, 0x24ffb68f
mov dword [0x499cf8], eax
mov eax, dword [0x49788c]
and eax, 0xebfeffff
mov dword [0x49788c], eax
mov eax, dword [0x496c08]
or eax, 0x88093030
mov dword [0x496c08], eax
mov eax, esp
lea ecx, [esp + 0x30]
mov dword [eax + 4], ecx
mov dword [eax], 0x104
mov dword [esp + 0x2c], ecx
call fcn.00442eb0
mov dx, word [0x49273c]
mov ax, dx
imul eax, eax, 0x8e258efd
mov dx, ax
mov word [0x49273c], dx
mov eax, esp
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
call fcn.00452e00
mov dword [esp + 0x1b8], eax
mov eax, dword [0x494bdc]
mov ecx, dword [0x495fdc]
dec ecx
mov dword [0x495fdc], ecx
and eax, ecx
mov ecx, dword [0x4945c0]
add ecx, eax
mov dword [0x4945c0], ecx
mov eax, dword [0x4901e4]
mov ecx, esp
mov dword [ecx], 0x458
call eax
sub esp, 4
mov dx, word [0x4924ce]
mov ax, dx
and eax, 0xa449
mov dx, ax
mov word [0x4924ce], dx
mov eax, dword [esp + 0x1b8]
mov byte [esp + eax + 0x30], 0
mov eax, dword [0x498c0c]
xor eax, 0x20cb
mov dx, word [0x49187a]
mov cx, dx
and ecx, eax
mov dx, cx
mov word [0x49187a], dx
mov eax, dword [0x49d5e8]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx], eax
call fcn.00456370
mov dx, word [0x4907d4]
mov cx, dx
inc ecx
mov dx, cx
mov word [0x4907d4], dx
movsx ecx, dx
add ecx, 0x486af96b
mov esi, dword [0x49aa1c]
inc esi
mov dword [0x49aa1c], esi
and esi, 0xcf5d0ce8
xor esi, 0x4081195b
cmp ecx, esi
mov dword [esp + 0x28], eax
jg 0x43916b
mov eax, dword [0x49bd7c]
mov cx, word [0x493d2e]
movsx edx, cx
sar edx, 0xa
add eax, edx
mov edx, dword [0x49b180]
or edx, eax
mov dword [0x49b180], edx
mov eax, 0x302500
mov ecx, esp
mov dword [ecx + 4], 2
mov dword [ecx], 0x17ad
mov dword [esp + 0x24], eax
call fcn.0044dc30
mov dword [esp + 0x300], eax
mov eax, dword [0x497b9c]
mov ecx, eax
inc ecx
mov dword [0x497b9c], ecx
and eax, 0x9febd80e
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jl 0x4391b8
mov dword [0x497644], 0xe952eb6b
mov eax, 0xffffffff
mov ecx, dword [esp + 0x300]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x30]
mov dword [edx], ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
call fcn.00456370
mov ecx, dword [0x4970e0]
imul ecx, ecx, 0xcbb565c7
mov edx, dword [0x495404]
and ecx, edx
mov si, word [0x4944ee]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x4944ee], si
mov ecx, dword [esp + 0x300]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 2
mov dword [esp + 0x18], eax
call fcn.004387b0
mov eax, dword [0x49a68c]
imul eax, eax, 0xfdbfb9d7
mov dword [0x49a68c], eax
mov eax, dword [0x490144]
mov ecx, esp
lea edx, [esp + 0x1c0]
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x1c]
mov dword [ecx], edx
call eax
sub esp, 8
mov dword [esp + 0x1bc], eax
mov eax, dword [0x49bb98]
and eax, 0xa64a79d7
mov ecx, dword [0x49aa94]
or ecx, eax
mov dword [0x49aa94], ecx
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x1bc], eax
je 0x43937a
mov eax, dword [0x49c140]
add eax, 0xc4b11502
mov dword [0x49c140], eax
mov ax, word [0x4910fc]
mov cx, ax
xor ecx, 0xd20e
mov ax, cx
mov word [0x4910fc], ax
mov ecx, dword [esp + 0x1b8]
mov byte [esp + ecx + 0x30], 0
mov ecx, dword [0x495250]
and ecx, 0xf220e5a1
mov dword [0x495250], ecx
lea ecx, [esp + 0x1ec]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x30]
mov dword [edx], ecx
mov dword [esp + 0x14], ecx
call fcn.00456370
mov word [0x4940b2], 0xa0ee
mov ecx, dword [0x490134]
mov edx, esp
mov esi, dword [esp + 0x14]
mov dword [edx], esi
mov dword [esp + 0x10], eax
call ecx
sub esp, 4
mov di, word [0x490e1c]
movsx ecx, di
imul ecx, ecx, 0x627e4ee0
mov edx, dword [0x494688]
sub edx, ecx
mov dword [0x494688], edx
mov dword [esp + 0xc], eax
mov eax, dword [0x490140]
mov ecx, dword [esp + 0x1bc]
mov edx, esp
lea esi, [esp + 0x1c0]
mov dword [edx + 4], esi
mov dword [edx], ecx
call eax
sub esp, 8
cmp eax, 0
jne 0x43928d
mov eax, dword [0x497884]
add eax, 0xc9e275c2
mov dword [0x497884], eax
mov eax, dword [0x49013c]
mov ecx, dword [esp + 0x1bc]
mov edx, esp
mov dword [edx], ecx
call eax
sub esp, 4
mov dword [0x49a534], 0x4109215
mov dword [esp + 8], eax
mov ax, word [0x4929a2]
movsx ecx, ax
mov ax, word [0x4906c6]
mov dx, ax
inc edx
mov si, dx
mov word [0x4906c6], si
movsx edx, ax
imul ecx, edx
mov dword [0x498e10], ecx
mov ecx, esp
lea edx, [esp + 0x30]
mov dword [ecx], edx
mov dword [ecx + 4], 0x188
call fcn.00447c30
mov ecx, dword [0x4982b0]
mov dword [0x496630], ecx
add esp, 0x304
pop esi
pop edi
ret