Function at 0x40d6d0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push edi
push esi
sub esp, 0x30c
mov ax, word [0x4991ae]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4991ae], ax
movsx ecx, ax
mov ax, word [0x498cc8]
mov dx, ax
inc edx
mov si, dx
mov word [0x498cc8], si
movsx edx, ax
add edx, 0x54ae534e
xor ecx, edx
mov edx, dword [0x48b12c]
cmp ecx, edx
jl 0x40d72c
mov eax, dword [0x491608]
imul eax, eax, 0x8c1d8810
mov dword [0x491608], eax
mov eax, dword [0x49be2c]
cmp eax, 0
je 0x40d73f
jmp 0x40dbc9
mov eax, 0xff4ff63e
mov ecx, dword [0x48e888]
xor ecx, 0x93397119
mov dword [0x48e888], ecx
mov ecx, dword [0x490208]
dec ecx
mov dword [0x490208], ecx
xor ecx, 0xb6ecea28
mov edx, dword [0x4955a4]
imul edx, ecx
mov dword [0x4955a4], edx
mov ecx, dword [0x4938ac]
add ecx, 0x6752a04e
mov dword [0x4938ac], ecx
mov ecx, dword [0x490ab0]
and ecx, 0x5934437c
mov dword [0x490ab0], ecx
mov ecx, dword [0x491188]
imul ecx, ecx, 0x20908742
mov edx, 0x23f96834
sub edx, ecx
mov ecx, dword [0x48ea0c]
sub ecx, edx
mov dword [0x48ea0c], ecx
mov ecx, esp
lea edx, [esp + 0x2f]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
call fcn.00439b00
mov eax, dword [0x48d730]
and eax, 0x8b04bb08
mov ecx, dword [0x4906c4]
imul ecx, eax
mov dword [0x4906c4], ecx
mov eax, esp
mov ecx, dword [esp + 0x24]
mov dword [eax], ecx
call fcn.00452df0
mov dword [esp + 0x1c0], eax
mov si, word [0x4997b0]
movsx eax, si
mov ecx, dword [0x48b294]
imul ecx, eax
mov dword [0x48b294], ecx
mov eax, dword [0x48ac44]
mov ecx, esp
mov dword [ecx], 0x461
call eax
sub esp, 4
mov eax, dword [0x48f010]
imul eax, eax, 0x6fbe7715
mov ecx, dword [0x48e2fc]
xor eax, ecx
xor eax, 0x5aa40008
mov dword [0x48e2fc], eax
mov eax, dword [esp + 0x1c0]
mov byte [esp + eax + 0x2f], 0
mov eax, dword [0x48bd54]
mov ecx, eax
inc ecx
mov dword [0x48bd54], ecx
mov ecx, dword [0x48b414]
and ecx, eax
mov dword [0x48b414], ecx
mov eax, dword [0x49be48]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
call fcn.00455f50
mov ecx, dword [0x48ba74]
and ecx, 0x673bfb09
mov dword [0x48ba74], ecx
mov ecx, esp
mov dword [ecx + 4], 2
mov dword [ecx], 0x127b
mov dword [esp + 0x20], eax
call fcn.00447ef0
mov dword [esp + 0x308], eax
mov si, word [0x496282]
mov ax, si
inc eax
mov si, ax
mov word [0x496282], si
movsx eax, si
add eax, 0x4d6443f7
mov ecx, dword [0x48cea8]
xor ecx, eax
mov dword [0x48cea8], ecx
mov eax, dword [esp + 0x308]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [ecx], eax
call fcn.00455f50
mov si, word [0x497ec2]
mov cx, si
dec ecx
mov di, cx
mov word [0x497ec2], di
movsx ecx, si
mov edx, dword [0x48bd64]
mov ebx, edx
inc ebx
mov dword [0x48bd64], ebx
or ecx, edx
mov edx, dword [esp + 0x28]
cmp edx, ecx
mov dword [esp + 0x1c], eax
jl 0x40d946
mov eax, dword [0x492120]
add eax, 0x7dfdf5f3
mov dword [0x492120], eax
mov eax, 0x85bbdf66
mov ecx, dword [esp + 0x308]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 2
mov dword [esp + 0x18], eax
call fcn.00437960
mov eax, dword [0x4937c8]
and eax, 0xb0d3d486
mov dword [0x4937c8], eax
mov eax, dword [0x48aba4]
mov ecx, esp
lea edx, [esp + 0x1c8]
mov dword [ecx + 4], edx
lea edx, [esp + 0x2f]
mov dword [ecx], edx
call eax
sub esp, 8
mov dword [esp + 0x1c4], eax
mov si, word [0x497002]
mov ax, si
inc eax
mov di, ax
mov word [0x497002], di
movsx eax, si
mov ecx, dword [0x4919ec]
xor ecx, 0xffffffff
imul ecx, ecx, 0xde4e46a0
and eax, ecx
mov ecx, dword [esp + 0x18]
cmp ecx, eax
je 0x40d9f2
mov eax, dword [0x48c9f4]
mov ecx, dword [0x49440c]
sar ecx, 8
imul eax, ecx
add eax, 0x8fecfccb
mov ecx, dword [0x490f44]
imul ecx, eax
mov dword [0x490f44], ecx
mov eax, 0xffffffff
cmp dword [esp + 0x1c4], eax
je 0x40db69
mov word [0x499988], 0xe326
mov eax, dword [0x48f9e8]
sar eax, 6
xor eax, 0x1e4b9de6
mov ecx, dword [0x4904ec]
imul ecx, eax
mov dword [0x4904ec], ecx
mov eax, dword [esp + 0x1c0]
mov byte [esp + eax + 0x2f], 0
mov eax, dword [0x492bf8]
imul eax, eax, 0xefa8ce85
add eax, 0x78adf8ff
mov ecx, dword [0x48cbd8]
or ecx, eax
mov dword [0x48cbd8], ecx
lea eax, [esp + 0x1f4]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x2f]
mov dword [ecx], eax
mov dword [esp + 0x14], eax
call fcn.00455f50
mov ecx, dword [0x494d10]
add ecx, 0xd350164a
mov dword [0x494d10], ecx
mov ecx, dword [0x48ab94]
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 [0x4977ba]
mov cx, di
add ecx, 0x8da04547
mov di, cx
mov word [0x4977ba], di
mov dword [esp + 0xc], eax
mov eax, dword [0x48aba0]
mov ecx, dword [esp + 0x1c4]
mov edx, esp
lea esi, [esp + 0x1c8]
mov dword [edx + 4], esi
mov dword [edx], ecx
call eax
sub esp, 8
cmp eax, 0
jne 0x40da0d
mov word [0x49a046], 0x5338
mov eax, dword [0x48ab9c]
mov ecx, dword [esp + 0x1c4]
mov edx, esp
mov dword [edx], ecx
call eax
sub esp, 4
mov si, word [0x499a76]
movsx ecx, si
shl ecx, 7
cmp ecx, 0x7408b902
mov dword [esp + 8], eax
jle 0x40db64
mov eax, 0xc7162712
mov ecx, dword [0x48ef80]
inc ecx
mov dword [0x48ef80], ecx
mov dx, word [0x497384]
movsx esi, dx
xor esi, 0xffffffff
imul esi, esi, 0x8bfc45df
sub ecx, esi
cmp eax, ecx
jg 0x40db5f
mov ax, word [0x49938a]
mov cx, ax
or ecx, 0x578b
mov ax, cx
mov word [0x49938a], ax
jmp 0x40db64
jmp 0x40db69
mov eax, dword [0x48d154]
add eax, 0x7adcd48c
cmp eax, 0x1424100
jge 0x40db92
mov eax, dword [0x48d894]
add eax, 0x5e2df740
mov dword [0x48d894], eax
jmp 0x40dba6
mov eax, dword [0x48c6b0]
mov ecx, dword [0x494e18]
imul ecx, eax
mov dword [0x494e18], ecx
mov eax, esp
lea ecx, [esp + 0x2f]
mov dword [eax], ecx
mov dword [eax + 4], 0x191
call fcn.0041c290
mov eax, dword [0x491ce8]
or eax, 0xfc9d14
mov dword [0x491ce8], eax
add esp, 0x30c
pop esi
pop edi
pop ebx
ret