Function at 0x410307
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov edi, dword [esp + 0x2c]
mov eax, dword [0x49d6e8]
cmp eax, 0x7fe797ff
jne 0x4102d7
mov eax, dword [0x49a9c0]
imul eax, eax, 0x1802098
mov dword [0x49a9c0], eax
mov ebx, dword [esp + 0x28]
xor dword [0x49aa48], 0x1a0a5008
mov eax, dword [0x4920c0]
shl eax, 8
mov cx, word [0x482bca]
sub ecx, eax
mov word [0x482bca], cx
add dword [0x49a87c], 0xb2676f3c
lea eax, [edi + 4]
mov dword [esp], eax
call fcn.0044d565
mov dword [esp + 0xc], eax
mov esi, dword [0x49a3e0]
dec esi
mov dword [0x49a3e0], esi
mov ecx, dword [0x490774]
lea edx, [ecx - 1]
mov dword [0x490774], edx
xor esi, ecx
mov dword [0x48c5e8], esi
mov cx, word [0x486046]
movsx ecx, cx
or ecx, 0xbc49efe2
mov dword [0x49d2c4], ecx
jmp 0x41036a
mov dword [0x48f10c], 0x3feafeb6
mov ebp, eax
mov ax, word [0x487952]
add eax, 0x100
mov word [0x487952], ax
mov al, byte [ebx + section..data]
mov byte [ebp], al
mov eax, dword [0x48d5c8]
inc eax
mov dword [0x48d5c8], eax
imul eax, eax, 0x247336b9
or eax, 0x660a5937
add dword [0x493c8c], eax
mov eax, dword [0x49eb90]
mov al, byte [eax + ebx]
xor byte [ebp], al
mov ax, word [0x485e92]
cwde
or eax, 0x8b59c62f
cmp eax, 0xa9e309dc
ja 0x410400
mov eax, dword [0x490a70]
mov ecx, dword [0x498174]
lea edx, [ecx - 1]
mov dword [0x498174], edx
lea eax, [eax + ecx - 0x3dc952d5]
cmp eax, 0x9c716b7d
jg 0x410428
mov ax, word [0x483e1e]
add eax, 0xffffa051
mov word [0x483e1e], ax
jmp 0x410428
mov eax, dword [0x4943a4]
xor eax, 0xdd88f0f1
cmp eax, 0xa3721445
jl 0x410428
mov eax, dword [0x48d7c4]
mov ecx, dword [0x49e478]
imul ecx, eax
shl ecx, 5
mov dword [0x49e478], ecx
mov eax, dword [0x48b654]
dec eax
mov dword [0x48b654], eax
xor eax, 0xd0039018
cmp eax, 0xd27d2db1
jg 0x410450
mov ax, word [0x486486]
jmp 0x41045a
add dword [0x4927ec], 0x1c7a30ce
xor dword [0x49dc84], 0xf9ffeadb
mov al, byte [ebx + 0x475001]
mov byte [ebp + 1], al
mov eax, dword [0x49d31c]
lea ecx, [eax - 1]
mov dword [0x49d31c], ecx
or dword [0x496b14], eax
mov eax, dword [0x49eb90]
mov al, byte [eax + ebx + 1]
xor byte [ebp + 1], al
mov eax, dword [0x496a2c]
dec dword [0x497dc8]
add dword [0x492c84], 0xda73a534
mov eax, dword [0x49040c]
cmp eax, 0xdfc7bfda
jl 0x4104b8
and dword [0x48c23c], 0x3adff86a
mov ax, word [0x489488]
lea ecx, [eax - 1]
mov word [0x489488], cx
cwde
and eax, 0x1314e044
mov ecx, dword [0x4963f0]
cmp eax, ecx
je 0x410502
mov ax, word [0x489702]
cwde
add eax, 0x3c7c154d
cmp eax, 0xbe53d4a4
jl 0x410502
mov eax, dword [0x49a610]
shr eax, 1
mov cx, word [0x48366e]
add ecx, eax
mov word [0x48366e], cx
add ebx, 2
movzx esi, word [ebp]
mov eax, dword [0x49c0dc]
cmp eax, 0xaa3a8a4e
jl 0x410530
mov dword [esp + 0x10], edi
mov eax, dword [0x492d54]
imul eax, eax, 0x53498821
mov dword [0x492d54], eax
jmp 0x410544
mov dword [esp + 0x10], edi
mov eax, dword [0x49be58]
and eax, 0x5572d7a7
add dword [0x49d4c0], eax
lea eax, [ebx + section..data]
lea edi, [esi + 3]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], ebp
call fcn.0044c7c0
xor dword [0x493078], 0xefcfd5bb
mov ax, word [0x4819de]
add eax, 2
mov word [0x4819de], ax
mov ax, word [0x488554]
lea ecx, [eax - 1]
mov word [0x488554], cx
cwde
or eax, 0xed582cff
xor eax, 0x12205000
mov ecx, dword [0x48d460]
mov dx, word [0x4841f0]
movsx edx, dx
sar edx, 9
and edx, ecx
cmp eax, edx
jle 0x4105e0
mov eax, dword [0x48d3dc]
dec eax
mov dword [0x48d3dc], eax
mov ecx, dword [0x497d88]
lea edx, [ecx + 1]
mov dword [0x497d88], edx
xor ecx, 0xf5da43ad
or ecx, eax
mov eax, dword [0x495844]
sub eax, ecx
mov dword [0x495844], eax
jmp 0x410607
mov eax, dword [0x490584]
mov ecx, dword [0x48cce4]
lea edx, [ecx + 1]
mov dword [0x48cce4], edx
xor eax, ecx
cmp eax, 0x2cbd1135
jl 0x410607
or dword [0x48c920], 0xd628b742
lea eax, [ebp + esi + 3]
add ebx, dword [0x49eb90]
mov ecx, dword [0x48c5b4]
inc ecx
mov dword [0x48c5b4], ecx
and ecx, 0x21e
mov word [0x486872], cx
nop
nop
nop
nop
nop
mov ecx, dword [0x491e58]
or ecx, 0xb3fa
mov dx, word [0x487e36]
xor edx, ecx
mov word [0x487e36], dx
mov cl, byte [ebx]
xor byte [ebp], cl
mov ecx, dword [0x499180]
imul ecx, ecx, 0x23cadf4a
mov dword [0x499180], ecx
inc ebp
inc ebx
dec edi
jne 0x410630
mov cx, word [0x486126]
or ecx, 0x2349
mov word [0x486126], cx
mov edi, dword [esp + 0x10]
sub edi, esi
je 0x410779
and dword [0x49a464], 0xc86f9ee0
mov byte [eax], 0
mov ecx, dword [0x493ea8]
lea edx, [ecx + 1]
mov dword [0x493ea8], edx
and ecx, 0x707bea22
cmp ecx, 0x67076c06
ja 0x4106c4
mov ecx, dword [0x492520]
add ecx, 0x2ba41a41
xor dword [0x497f78], ecx
mov ecx, dword [0x49d58c]
lea edx, [ecx + 1]
mov dword [0x49d58c], edx
mov dx, word [0x481c44]
or edx, ecx
mov word [0x481c44], dx
mov ebx, dword [eax - 3]
add eax, 0xfffffffd
mov ecx, dword [0x49b914]
shr ecx, 4
mov edx, 0x81c096a7
sub edx, ecx
mov cx, word [0x4885ca]
xor ecx, edx
mov word [0x4885ca], cx
mov ecx, dword [0x49e320]
mov edx, dword [0x49ab3c]
mov esi, dword [0x495304]
dec esi
mov dword [0x495304], esi
xor esi, ecx
xor esi, edx
mov word [0x489bd4], si
mov ecx, dword [0x49d254]
or ecx, 0xb3fc5f6c
xor ecx, 0x4c03a092
cmp ecx, 0xb8f70619
mov ebp, eax
ja 0x41036c
mov ecx, dword [0x498198]
dec ecx
mov dword [0x498198], ecx
imul ecx, ecx, 0xf39be124
xor ecx, 0xdf3033a3
cmp ecx, 0xfcbfeb62
mov ebp, eax
jl 0x41036c
jmp 0x410360
and dword [0x49466c], 0x7bebfff9
mov eax, dword [esp + 0xc]
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret