Function at 0x405ca7
Capabilities:
Encode data using xor

Disassembly:
mov edi, 0x12c
dec esi
mov esi, 0
dec esi
sub esi, 0xae
xor edi, esi
sub edx, edx
add edx, 0x1000
or edx, ecx
sub edx, ecx
or edx, ecx
cmp edx, dword [ebp - 0x1f4]
je 0x405bc2
mov ecx, 0xc8
add ecx, 0x16
sub ecx, 0x20
or edx, ecx
sub edx, ecx
dec edx
sub edx, 0x1800
call dword [0x401048]
mov edx, dword [ebp - 0xfc]
and ecx, edx
and ecx, edx
add ecx, 0x500
mov ecx, 0
and edx, ecx
or edx, ecx
inc ecx
push dword [ebp - 0x140]
push dword [ebp - 0x280]
push 0xd00
push 0
push 0xffffffffffffffff
call dword [0x40104c]
sub eax, eax
xor eax, ecx
xor eax, ecx
or eax, ecx
add eax, 0xb00
cmp eax, dword [ebp - 0x2e8]
ja 0x405c1a
sub ecx, ecx
dec ecx
and eax, ecx
xor eax, ecx
push dword [ebp - 0x114]
push dword [ebp - 0x2a0]
push 0xa00
push 0
push 0xffffffffffffffff
call dword [0x40104c]
mov ecx, 0
and ecx, eax
mov eax, dword [ebp - 0x108]
push dword [ebp - 0x238]
push dword [ebp - 0x28c]
push 0xd00
push 0
push 0xffffffffffffffff
call dword [0x40104c]
mov ecx, dword [ebp - 0x1a0]
add ecx, 0x1f00
or ecx, edx
xor ecx, edx
sub ecx, 0xa00
cmp dword [ebp - 0x2a4], ecx
jb 0x405c91
sub edx, edx
add edx, ecx
cmp edx, 0x72e
jbe 0x405c91
add edx, 0xb3
sub edx, ecx
sub edx, ecx
or ecx, edx
sub ecx, 0x13
push dword [ebp - 0x23c]
push dword [ebp - 0x198]
push 0x900
push 0
push 0xffffffffffffffff
call dword [0x40104c]
inc dword [ebp - 0x7c]
call dword [0x401048]
xor edx, edx
and edx, ecx
and ecx, edx
xor ecx, edx
mov ecx, 0x12c
sub ecx, edx
sub ecx, edx
mov edx, 0x300
add edx, 0x1400
cmp edx, 0x93
jne 0x405cf0
mov eax, 0x200
dec eax
cmp edx, 0xe73
jbe 0x405cf0
or edx, eax
sub edx, eax
mov ecx, dword [ebp - 0x200]
push ecx
call dword [0x40105c]
sub ecx, ecx
add ecx, 0xf00
cmp ecx, 0x71
jbe 0x405d20
mov eax, 0x64
sub eax, ecx
sub eax, 0x1e00
cmp dword [ebp - 0x29c], ecx
ja 0x405d20
inc eax
call dword [0x40103c]
xor eax, eax
add eax, ecx
cmp eax, dword [ebp - 0x2b0]
jae 0x405d39
sub ecx, ecx
add eax, 0
sub eax, ecx
lea esi, [ebp - 0x26c]
push esi
call dword [0x40101c]
sub edx, edx
or edx, eax
add edx, eax
cmp edx, dword [ebp - 0x1ac]
jbe 0x405d5b
dec edx
dec edx
mov eax, 0x64
add edx, 0x1800
and edx, eax
call dword [0x40103c]
xor edx, edx
add eax, edx
and eax, edx
sub eax, 0x1d00
mov eax, 0x200
add eax, 0x600
add eax, 0xd4
xor edx, eax
sub edx, eax
call dword [0x40103c]
mov ecx, dword [ebp - 0x7c]
mov edx, 0xc8
add edx, 0x1d00
sub edx, 0xb0
sub eax, edx
cmp edx, 0xd8d
jb 0x405dc1
mov eax, dword [ebp - 0xc8]
or eax, edx
cmp edx, dword [ebp - 0x280]
jbe 0x405dc1
and eax, edx
dec eax
xor edx, edx
sub edx, 0xc8
sub edx, 0x1400
xor edx, eax
xor eax, eax
and edx, eax
sub edx, edx
or edx, eax
or edx, eax
xor edx, eax
cmp edx, dword [ebp - 0xc8]
jb 0x405df3
mov eax, 0xc8
sub eax, edx
or eax, edx
add edx, 0x43
sub edx, eax
cmp dword [ecx], 0x75ff1075
jne 0x405b82
mov ecx, dword [ebp - 0x1bc]
sub ecx, edx
add ecx, 0x200
add ecx, 0x71
dec ecx
cmp ecx, 0
jae 0x405e27
mov edx, dword [ebp - 0x180]
dec edx
xor edx, ecx
cmp dword [ebp - 0x2a0], edx
ja 0x405e27
dec dword [ebp - 0x7c]
mov edx, dword [ebp - 0x1f8]
sub edi, edx
mov edi, dword [ebp - 0x210]
sub edx, 0x9d
sub edx, 0x1400
mov esi, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x2a0]
or edx, edi
add edx, 0x1900
and edx, edi
or edx, edi
dec edx
add edi, edx
or edi, edx
test edx, edx
jae 0x405e75
or edi, edx
mov edi, 0xc8
sub edi, edx
add edi, edx
add edi, edx
add edx, edi
add edi, edx
and edi, edx
mov eax, dword [esi]
mov edx, 0
sub edx, ecx
add edx, 0x56
cmp edx, 0
jb 0x405e97
mov ecx, 0x12c
xor ecx, edx
xor ecx, edx
cmp edx, 0xbd
je 0x405e97
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x17c]
sub eax, 0x300
sub eax, 0xde
sub eax, 0x1800
cmp dword [ebp - 0x1ac], eax
jae 0x405ece
mov ecx, dword [ebp - 0x2ec]
and ecx, eax
xor ecx, eax
cmp dword [ebp - 0x2f0], ecx
jbe 0x405ece
and eax, ecx
push 0x40
push 0x1000
push 0x13000
push 0
call dword [0x401028]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x64], eax
call dword [0x40103c]
call dword [0x40103c]
mov edx, dword [ebp - 0x2ac]
inc edx
sub edx, 0xa00
and edx, eax
xor edx, eax
cmp edx, 0
ja 0x405f1e
sub eax, eax
add eax, 0xe00
inc eax
cmp eax, 0xf9
ja 0x405f1e
or edx, eax
and edx, eax
lea esi, [ebp - 0x100]
push esi
call dword [0x40101c]
mov eax, 0x200
add eax, 0x1c
add eax, 0x1000
add eax, 0x21
cmp eax, 0
jb 0x405f50
xor edx, edx
inc edx
add edx, eax
add eax, edx
xor eax, edx
sub eax, edx
inc eax
dec eax
xor eax, edx
call dword [0x401064]
call dword [0x40103c]
mov dword [ebp - 0x2dc], eax
sub eax, eax
add eax, 0xe00
add edx, eax
sub edx, 0xf1
add edx, eax
and edx, eax
dec eax
inc eax
add eax, 0x1000
mov edx, 0x64
and edx, eax
push dword [ebp - 0x278]
push dword [ebp - 0x1fc]
push 0x100
push 0
push 0xffffffffffffffff
call dword [0x40104c]
mov edx, 0x64
add ecx, 0xe4
mov ecx, 0x12c
and edx, ecx
inc edx
push dword [ebp - 0x268]
push dword [ebp - 0x158]
push 0x600
push 0
push 0xffffffffffffffff
call dword [0x40104c]
xor ecx, ecx
add ecx, 0x15
cmp ecx, 0xf53
jb 0x405fef
xor ecx, eax
or ecx, eax
xor ecx, eax
or ecx, eax
dec ecx
xor eax, eax
sub eax, ecx
add ecx, 0x6a
xor eax, ecx
call dword [0x401064]
mov edx, dword [ebp - 0xc4]
add eax, edx
dec edx
sub edx, 0x51
dec edx
cmp edx, 0
jbe 0x406011
add eax, edx
xor eax, eax
sub eax, edx
xor eax, edx
mov edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x50]
add esi, 0x1310c40
mov ecx, 0xbf0
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x278]
or edx, ecx
dec edx
xor ecx, edx
sub ecx, edx
cmp edx, dword [ebp - 0x2b0]
jne 0x406042
sub ecx, ecx
add edx, 0x1f00
dec edx
dec edx
call dword [0x40103c]
sub eax, eax
sub edx, edx
inc eax
mov eax, 0x100
sub eax, ecx
inc eax
sub eax, 0xe00
mov ecx, 0
inc ecx
and ecx, eax
and ecx, eax
push dword [ebp - 0x17c]
push dword [ebp - 0x130]
push 0x700
push 0
push 0xffffffffffffffff
call dword [0x40104c]
mov dword [ebp - 0x1d8], eax
lea esi, [ebp - 0x124]
push esi
call dword [0x40101c]
xor ecx, ecx
xor ecx, edx
xor ecx, edx
or ecx, edx
cmp dword [ebp - 0x288], ecx
jne 0x4060b5
mov edx, 0x300
cmp dword [ebp - 0x2f4], ecx
jae 0x4060b5
xor edx, ecx
and edx, ecx
call dword [0x401064]
sub edx, edx
dec edx
and edx, ecx
cmp edx, 0
je 0x4060cf
mov ecx, dword [ebp - 0x1a4]
test ecx, ecx
ja 0x4060cf
call dword [0x40103c]
sub ecx, ecx
sub ecx, eax
and ecx, eax
xor ecx, eax
cmp dword [ebp - 0x24c], ecx
ja 0x4060eb
sub eax, eax
xor ecx, eax
and ecx, eax
call dword [0x401064]
xor eax, eax
add eax, ecx
xor ecx, eax
and eax, ecx
cmp eax, 0xfa7
je 0x40610d
sub ecx, ecx
add ecx, 0x2d
cmp eax, 0
ja 0x40610d
xor eax, ecx
inc eax
dec eax
mov edi, dword [ebp - 0x3c]
mov ecx, 0xc00
mov edx, 0xda5ef6ab
sub eax, eax
sub esi, esi
add eax, 0x28
sub eax, 0x1000
add eax, 0x35
sub esi, eax
and esi, eax
xor esi, eax
mov eax, dword [edi]
xor eax, edx
add eax, edx
mov dword [edi], eax
sub edi, 0xfffffffc
loop 0x406132
push dword [ebp - 0x268]
push dword [ebp - 0x1b0]
push 0x800
push 0
push 0xffffffffffffffff
call dword [0x40104c]
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x220]
push ecx
call dword [0x40105c]
mov eax, 0x200
mov edx, dword [ebp - 0xf8]
and edx, eax
dec edx
sub eax, edx
add eax, 0xc
call dword [0x401064]
mov edx, dword [ebp - 0x1e0]
xor edx, eax
or edx, eax
xor edx, eax
inc edx
cmp dword [ebp - 0x2d0], edx
jbe 0x4061a9
xor eax, eax
add eax, 0x3f
inc eax
cmp eax, dword [ebp - 0x2d0]
ja 0x4061a9
call dword [0x401048]
mov edx, 0x300
add edx, 0x1a00
and edx, ecx
xor ecx, edx
add ecx, 0x9a
xor ecx, edx
xor ecx, ecx
call dword [0x40103c]
mov edx, dword [ebp - 0x50]
mov esi, 0
add esi, 0xff1075ff
cmp edx, esi
jne 0x4063c4
sub ecx, ecx
sub ecx, 0x1900
sub ecx, edx
add ecx, 0xe9
cmp ecx, 0
jbe 0x406209
xor ecx, edx
mov edx, 0x200
xor edx, ecx
dec ecx
sub ecx, 0xbc
lea edi, [ebp - 0x100]
push edi
call dword [0x40101c]
mov ecx, 0x12c
sub ecx, 0x90
add ecx, eax
sub ecx, eax
cmp ecx, 0
jne 0x406239
mov eax, 0
sub eax, ecx
cmp dword [ebp - 0x2e8], ecx
jb 0x406239
inc eax
inc eax
call dword [0x401048]
mov dword [ebp - 0x294], eax
mov ecx, 0
xor edx, ecx
mov edx, 0
push dword [ebp - 0xf8]
push dword [ebp - 0x238]
push 0xd00
push 0
push 0xffffffffffffffff
call dword [0x40104c]
mov dword [ebp - 0x2e0], eax
xor eax, eax
dec eax
xor eax, edx
cmp eax, 0
ja 0x406288
sub edx, edx
and edx, eax
and edx, eax
test edx, edx
jae 0x406288
mov eax, dword [ebp - 0x19c]
push eax
call dword [0x40105c]
mov eax, 0x200
sub eax, 0xf00
mov edx, 0x64
add eax, edx
sub eax, 0x7f
push dword [ebp - 0xa8]
push dword [ebp - 0xdc]
push 0x600
push 0
push 0xffffffffffffffff
call dword [0x40104c]
call dword [0x401064]
push dword [ebp - 0x118]
push dword [ebp - 0x278]
push 0x400
push 0
push 0xffffffffffffffff
call dword [0x40104c]
call dword [0x401064]
mov ecx, dword [ebp - 0x1b4]
add ecx, 0xcb
or ecx, eax
add ecx, 0x1500
and ecx, eax
cmp ecx, dword [ebp - 0x1f0]
jbe 0x406314
mov eax, dword [ebp - 0x2ec]
inc eax
add eax, ecx
dec eax
push 0x41781d
call dword [0x401044]
mov ebx, eax
mov edx, dword [ebp - 0x218]
dec edx
add edx, esi
inc edx
or edx, esi
test edx, edx
jae 0x406343
xor esi, esi
sub esi, 0x100
dec esi
dec esi
test edx, edx
jbe 0x406343
and esi, edx
add esi, edx
add edx, 0x50
or edx, esi
sub esi, edx
and esi, edx
mov edi, dword [ebp - 0x64]
mov edx, dword [ebp - 0xdc]
and esi, edx
dec esi
inc edx
add edx, 0xd00
sub edx, esi
cmp dword [ebp - 0x1b4], edx
jne 0x406376
or edx, esi
add edx, esi
sub edx, esi
mov esi, 0
or edx, esi
and edx, esi
add edx, 0x100
push edi
mov ecx, 0xc8
inc ecx
add ecx, 0x4b
sub ecx, eax
add eax, 0xc00
cmp ecx, dword [ebp - 0x2b4]
je 0x40639d
xor eax, eax
inc ecx
xor ecx, eax
ret
mov edx, 0x64
add edx, eax
and edx, eax
and edx, eax
and edx, eax
cmp edx, 0
ja 0x4063ea
sub eax, eax
add edx, eax
cmp dword [ebp - 0xc0], eax
jae 0x4063f4
or edx, eax
sub edx, 0xdd
add edx, eax
or edx, eax
add edx, 0xef
call dword [0x401048]
mov ecx, 0x300
or ecx, eax
or eax, ecx
add eax, ecx
sub eax, eax
add eax, 0x1b00
and eax, ecx
mov esi, dword [ebp - 0x154]
push esi
call dword [0x40105c]
xor eax, eax
and eax, ecx
sub eax, 0xc7
add eax, ecx
or eax, ecx
and eax, ecx
cmp eax, 0x71
je 0x40643b
mov ecx, 0
add ecx, eax
sub ecx, 0xa
mov edx, 0
add eax, 0x500
or eax, edx
sub edx, 0xde
cmp dword [ebp - 0x2e0], edx
jae 0x40645f
sub eax, eax
add eax, edx
sub eax, edx
or edx, eax
dec edx
push dword [ebp - 0x2c8]
push dword [ebp - 0xe0]
push 0x900
push 0
push 0xffffffffffffffff
call dword [0x40104c]
xor ecx, ecx
xor ecx, edx
test ecx, ecx
jne 0x406499
mov edx, 0
add edx, 0x1e00
cmp edx, 0xb58
jne 0x40649b
or ecx, edx
sub ecx, edx
or ecx, edx
sub ecx, 0x700
add ecx, 0xc
sub ecx, ecx
or ecx, eax
add ecx, 0x300
cmp dword [ebp - 0xd8], ecx
jbe 0x4064ba
xor eax, eax
sub eax, ecx
leave
ret