Function at 0x4574cd
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4b9c7f
call fcn.004b9128
sub esp, 0xc0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x18], 0xfffffff8
mov dword [ebp - 0x1c], 0xcdbe
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xfffffffc
dec dword [ebp - 0x1c]
xor ebx, ebx
mov dword [ebp - 0x18], ebx
xor edi, edi
inc edi
cmp dword [ebp - 0x18], 0x13
jg 0x4576cc
mov dword [ebp - 0x14], 0xfffffff7
mov dword [ebp - 0x28], 0x3448
cmp dword [ebp - 0x28], 0x3739
jle 0x4575c2
mov dword [ebp - 0x20], ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
mov esi, ebx
mov dword [ebp - 0x34], ebx
mov edx, ebx
mov dword [ebp - 0x38], edx
mov ecx, esi
shl eax, cl
mov dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x20]
and eax, edx
xor eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xb4]
call fcn.00401abe
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x45756d
mov eax, dword [eax]
push eax
call fcn.004a3977
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xb4]
call fcn.00432191
mov edx, dword [ebp - 0x38]
inc edx
mov dword [ebp - 0x38], edx
cmp edx, 0x37bd
mov eax, dword [ebp - 0x2c]
jl 0x457551
mov esi, dword [ebp - 0x34]
inc esi
mov dword [ebp - 0x34], esi
cmp esi, 0x53b9
mov eax, dword [ebp - 0x24]
jl 0x457542
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x59c5
jl 0x45753d
mov eax, dword [ebp - 0x20]
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x5dc
jl 0x457538
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x28], 0x340e
jge 0x4575dc
push 0xabcef4
call fcn.004a3977
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x457605
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setle cl
imul eax, ecx, 6
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x24]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x1c]
jle 0x45767b
mov dword [ebp - 0x28], 5
cmp dword [ebp - 0x14], ebx
jne 0x457674
cmp dword [ebp - 0x28], ebx
jne 0x45764d
cmp dword [ebp - 0x18], ebx
mov ecx, ebx
je 0x45764f
mov ecx, edi
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
test ecx, ecx
je 0x45766c
cmp dword [ebp - 0x14], ebx
mov eax, edi
jne 0x45766e
mov eax, ebx
neg eax
mov eax, ebx
je 0x457676
mov eax, edi
mov dword [ebp - 0x2c], eax
jmp 0x4576c4
mov dword [ebp - 0x20], ebx
jmp 0x4576b7
push 2
lea ecx, [ebp - 0x64]
call fcn.00431db5
mov dword [ebp - 0x14], ebx
jmp 0x45769f
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x64]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x45768f
mov eax, dword [ebp - 0x64]
lea ecx, [ebp - 0x64]
cmp dword [eax], ebx
jne 0x4576bf
call fcn.00431e87
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xffffffeb
jl 0x457680
jmp 0x4576c4
call fcn.00431e87
inc dword [ebp - 0x18]
jmp 0x457510
mov dword [ebp - 0x2c], 0x98a59c17
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x2c], 0x1da6
push 3
pop esi
push esi
lea ecx, [ebp - 0x7c]
call fcn.00431db5
mov dword [ebp - 0x14], ebx
jmp 0x4576ff
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x9c], 0xffffffff
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x4576ee
mov dword [ebp - 0x14], ebx
jmp 0x457716
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x90], ebx
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x457709
mov dword [ebp - 0x14], ebx
jmp 0x457730
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x7c]
mov dword [eax + ecx*4], 0xfffffffc
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], esi
jl 0x457720
mov eax, dword [ebp - 0x7c]
inc dword [eax + 8]
lea ecx, [ebp - 0x7c]
call fcn.00431e87
mov dword [ebp - 0x20], 0xfffffff8
mov eax, 0x7eede0b4
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x14], 0x68ec0ae9
mov dword [ebp - 0x18], 0xc299e885
mov dword [ebp - 0x24], 0xa37d7c86
push edi
lea ecx, [ebp - 0x48]
call fcn.00431db5
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x34], 0x3f7
cmp dword [ebp - 0x34], 0x673
jle 0x4577e4
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov ebx, edi
mov ecx, esi
shl ebx, cl
mov edi, dword [ebp - 0x2c]
mov eax, ebx
and eax, edi
cdq
push edx
push eax
mov ecx, 0xad66f8
call fcn.00431c71
inc edi
cmp edi, 0x1548
jl 0x4577ac
inc esi
cmp esi, 0x6fc3
push 0
pop ebx
mov edi, dword [ebp - 0x28]
jl 0x4577a0
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x43ba
jl 0x45779e
xor edi, edi
inc edi
mov dword [ebp - 0x1c], ebx
jmp 0x4577f5
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], edi
jl 0x4577e9
mov dword [ebp - 4], 2
cmp dword [ebp - 0x34], 0x4b
jge 0x457816
mov edx, 0xabcf40
mov ecx, 0xad66f8
call fcn.00433a27
or dword [ebp - 4], 0xffffffff
jmp 0x45783f
mov dword [ebp - 0x14], 0xfffffff7
mov esi, 0xffff
cmp dword [ebp - 0x14], 0xfffffff6
jne 0x457a19
mov dword [ebp - 0x1c], ebx
push 4
lea ecx, [ebp - 0x70]
call fcn.00431db5
mov dword [ebp - 0x18], ebx
jmp 0x457875
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x3c], 0x72585faf
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
jl 0x457867
mov dword [ebp - 0x18], ebx
jmp 0x45788f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x70]
mov dword [eax + ecx*4], 7
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x45787f
mov dword [ebp - 0x34], 0x8c3
cmp dword [ebp - 0x34], 0xb8d
jle 0x457917
push 0x1267
call dword [fcn.00ad94a4]
mov eax, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov ecx, ebx
mov dword [ebp - 0x28], ebx
add eax, esi
shl eax, cl
cdq
push edx
push eax
lea ecx, [ebp - 0xcc]
call fcn.00401abe
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x4578d8
mov eax, dword [eax]
push eax
call fcn.004a3977
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xcc]
call fcn.00432191
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, 0x7be6
mov eax, dword [ebp - 0x20]
jl 0x4578bc
inc esi
cmp esi, 0x7106
jl 0x4578b7
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0xb7e
jl 0x4578b5
mov esi, 0xffff
mov byte [ebp - 0x2d], bl
cmp byte [ebp - 0x2d], 0
je 0x457927
push ebx
call dword [fcn.00ad92dc]
mov dword [ebp - 4], 4
cmp dword [ebp - 0x34], 0x7d4
jge 0x457942
push 0xabcf88
call fcn.004a3977
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x457970
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp eax, 0xb6ea
setle cl
cmp esi, ecx
sbb eax, eax
neg eax
sub eax, dword [ebp - 0x24]
neg eax
sbb eax, eax
inc eax
add eax, dword [ebp - 0x1c]
je 0x4579a0
cmp dword [ebp - 0x24], ebx
mov ecx, edi
jne 0x4579a2
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setg dl
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x48]
mov dword [eax], edx
xor ecx, ecx
cmp edx, 0xf5047c4d
sete cl
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
setge dl
imul edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x14]
jne 0x4579e3
cmp dword [ebp - 0x24], ebx
jne 0x4579e3
cmp dword [ebp - 0x18], ebx
mov ecx, ebx
je 0x4579e5
mov ecx, edi
mov eax, dword [ebp - 0x3c]
sub ecx, eax
cmp dword [ebp - 0x14], ecx
jl 0x457a01
mov dword [ebp - 0x2c], 2
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 8]
mov dword [ebp - 0x2c], eax
jmp 0x457a09
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
mov dword [eax], ecx
lea ecx, [ebp - 0x70]
call fcn.00431e87
dec dword [ebp - 0x14]
jmp 0x45784b
mov dword [ebp - 0x18], ebx
jmp 0x457a73
mov dword [ebp - 0x20], 0x2fd89d68
mov dword [ebp - 0x2c], 0xeb927eed
inc dword [ebp - 0x38]
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], ebx
jl 0x457a70
mov dword [ebp - 0x20], ebx
jmp 0x457a57
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
cmp dword [eax + ecx*4], ebx
jne 0x457a5c
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov dword [eax + ecx*4], 0xf2c67a95
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], ebx
jle 0x457a3c
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x48]
mov eax, dword [ecx + eax*4]
mov dword [ecx + edx*4], eax
dec dword [ebp - 0x14]
jns 0x457a37
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xa
jge 0x457a1e
lea ecx, [ebp - 0x48]
call fcn.00431e87
mov dword [ebp - 0x14], 0xfffffffd
mov dword [ebp - 0x28], 0x1b059873
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x34], 0x1310
cmp dword [ebp - 0x34], 0x16b0
jle 0x457af3
mov edi, ebx
mov dword [ebp - 0x28], ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov eax, edi
cdq
idiv esi
mov ebx, edx
mov edi, dword [ebp - 0x2c]
mov eax, ebx
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xad66f8
call fcn.00431c71
inc edi
cmp edi, 0x26d5
jl 0x457ab6
inc esi
cmp esi, 0x333d
push 0
pop ebx
mov edi, dword [ebp - 0x28]
jl 0x457aa9
inc edi
mov dword [ebp - 0x28], edi
cmp edi, 0x5722
jl 0x457aa7
xor edi, edi
inc edi
mov esi, 0xffff
mov dword [ebp - 0x2c], esi
mov dword [ebp - 4], 6
cmp dword [ebp - 0x34], 0x10ed
jge 0x457b15
mov edx, 0xabcfe8
mov ecx, 0xad66f8
call fcn.00433a27
or dword [ebp - 4], 0xffffffff
jmp 0x457b3e
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x14], 0xffffffed
je 0x457d22
mov dword [ebp - 0x18], 0xe7937d8e
mov dword [ebp - 0x1c], 0x9be5411a
mov dword [ebp - 0x1c], ebx
jmp 0x457b6c
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x50], 2
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 2
jl 0x457b5e
mov dword [ebp - 0x18], ebx
jmp 0x457b85
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], 9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x457b77
cmp dword [ebp - 0x50], ebx
je 0x457b97
cmp dword [ebp - 0x14], ebx
mov edx, edi
jne 0x457b99
mov edx, ebx
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
setne cl
imul eax, ecx, 0x3860
sub eax, dword [ebp - 0x14]
cmp eax, 0xc0351a93
sbb eax, eax
inc eax
imul ecx, dword [ebp - 0x18], 0xfffffff6
sub ecx, eax
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setle dl
xor ecx, ecx
cmp edx, edi
setle cl
xor eax, eax
cmp ecx, 0x359b
setle al
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0xcf8
setg cl
imul ecx, dword [ebp - 0x50]
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], ebx
je 0x457d0a
mov dword [ebp - 0x24], 0xfe35
mov dword [ebp - 0x34], 0x3b61
cmp dword [ebp - 0x34], 0x3c79
jle 0x457c47
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
push edx
push eax
mov ecx, 0xad66f8
call fcn.00431c71
inc edi
cmp edi, 0x5620
jl 0x457c11
inc esi
cmp esi, 0x2862
jl 0x457c0f
push 0x11fd
push 0xb0b
push ebx
call dword [0xad941c]
xor edi, edi
inc edi
mov dword [ebp - 0x28], 0xc7a2e428
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp eax, ecx
setl dl
mov esi, 0x218f
sub esi, edx
mov edx, dword [ebp - 0x24]
sub edx, 0x6a69eed0
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
cmp esi, ecx
setge dl
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp edx, eax
setl cl
add ecx, 0x15039
jne 0x457c9a
cmp dword [ebp - 0x14], ebx
mov eax, ebx
je 0x457c9c
mov eax, edi
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x24]
add edx, edx
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
inc edx
add edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
imul ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 4], 8
cmp dword [ebp - 0x34], 0x3ab3
jge 0x457cdf
mov edx, 0xabd040
mov ecx, 0xad66f8
call fcn.00433a27
or dword [ebp - 4], 0xffffffff
jmp 0x457d1a
mov byte [ebp - 0x2d], bl
cmp byte [ebp - 0x2d], 0
je 0x457d1a
push ebx
call dword [fcn.00ad9398]
dec dword [ebp - 0x14]
jmp 0x457b41
mov dword [ebp - 0x20], 0x13
jmp 0x457d51
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x1c], ebx
jmp 0x457d48
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0x8c], 0x5a9c4c8d
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x457d37
dec dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0xfffffffb
jl 0x457d2b
call fcn.00456e56
mov eax, dword [ebp - 0x54]
cdq
mov ecx, 0x3e8
idiv ecx
mov esi, edx
mov edi, eax
mov ecx, dword [ebp - 0x58]
call fcn.00456d9e
add eax, esi
add eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret