Function at 0x473602
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4bd5a5
call fcn.004bc9c0
sub esp, 0xa8
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x1c], 0x585b7f3
mov dword [ebp - 0x20], 0x8fde
xor esi, esi
mov dword [ebp - 0x2c], esi
mov eax, 0x23f126c
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x28], 0xa2c39d5b
mov dword [ebp - 0x24], 0x324015fb
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x28], esi
xor edi, edi
inc edi
jmp 0x47366d
mov eax, dword [ebp - 0x28]
mov dword [ebp + eax*4 - 0x30], 0xfffffffc
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], edi
jl 0x47365f
cmp dword [ebp - 0x1c], esi
je 0x4736d2
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], esi
jne 0x4736a5
mov eax, dword [ebp - 0x30]
imul eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp eax, 0x60a22152
setg cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
sub ecx, dword [ebp - 0x20]
mov edx, esi
je 0x4736a7
mov edx, edi
mov eax, dword [ebp - 0x20]
xor ecx, ecx
cmp eax, edx
setle cl
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setle dl
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
sete cl
imul ecx, dword [ebp - 0x20]
test ecx, ecx
mov eax, edi
jne 0x4736d4
mov eax, esi
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x28], eax
jle 0x4736e6
cmp dword [ebp - 0x2c], esi
mov ecx, edi
jne 0x4736e8
mov ecx, esi
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setle cl
sub ecx, 0xbff6
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x18], 0xfffffff7
je 0x473721
cmp dword [ebp - 0x24], esi
mov ecx, esi
je 0x473723
mov ecx, edi
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 0x18]
jge 0x47373f
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], esi
jne 0x473749
cmp dword [ebp - 0x30], esi
je 0x47374b
mov esi, edi
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setl dl
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, esi
setle cl
cmp ecx, edi
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x28]
xor edx, edx
cmp ecx, eax
setl dl
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp edx, eax
setle cl
xor edx, edx
cmp ecx, 0x386
setg dl
mov eax, dword [ebp - 0x28]
xor ebx, ebx
cmp edx, eax
setl bl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp ebx, eax
setne cl
mov dword [ebp - 0x28], ecx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
xor ecx, ecx
test eax, eax
setns cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x18], eax
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x40], 0x62b4
xor ebx, ebx
cmp dword [ebp - 0x40], 0x65de
jle 0x473823
mov dword [ebp - 0x20], ebx
mov edi, ebx
mov dword [ebp - 0x24], 0x78b3
mov esi, ebx
mov eax, edi
mov ecx, esi
shl eax, cl
cdq
push edx
push eax
mov ecx, 0xacdff8
call fcn.00421edf
inc esi
cmp esi, 0x6a72
jl 0x4737ec
mov eax, dword [ebp - 0x20]
add edi, eax
dec dword [ebp - 0x24]
jne 0x4737ea
inc eax
mov dword [ebp - 0x20], eax
cmp eax, 0x6ec4
jl 0x4737e1
xor edi, edi
inc edi
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x38], 0x4098
cmp dword [ebp - 0x38], 0x4470
jle 0x4738c8
mov dword [ebp - 0x18], ebx
mov esi, ebx
mov dword [ebp - 0x1c], ebx
mov eax, ebx
mov dword [ebp - 0x2c], ebx
mov edx, ebx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], esi
mov ecx, eax
mov eax, esi
shl eax, cl
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x18]
mov ecx, edx
shl eax, cl
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x80]
call fcn.0040195e
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x473873
mov eax, dword [eax]
push eax
call fcn.004a7217
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x80]
call fcn.004223ff
mov edx, dword [ebp - 0x24]
inc edx
mov dword [ebp - 0x24], edx
cmp edx, 0xfb1
mov eax, dword [ebp - 0x20]
jl 0x473858
mov eax, dword [ebp - 0x2c]
inc eax
mov dword [ebp - 0x2c], eax
cmp eax, 0x2ea5
mov esi, dword [ebp - 0x1c]
jl 0x473844
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, 0x3ab1
jl 0x47383f
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, 0x2490
jl 0x47383a
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x38], 0x4045
jge 0x4738df
push 0xabc12c
call fcn.004a7217
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47390e
mov dword [ebp - 0x1c], 0x49cf
cmp dword [ebp - 0x1c], 0x4c13
jle 0x47398c
mov esi, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], ebx
mov eax, esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], 0x4fca
mov esi, dword [ebp - 0x20]
cdq
push edx
push eax
lea ecx, [ebp - 0x98]
call fcn.0040195e
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47394d
mov eax, dword [eax]
push eax
call fcn.004a7217
pop ecx
push ebx
push edi
lea ecx, [ebp - 0x98]
call fcn.004223ff
mov eax, dword [ebp - 0x38]
add eax, esi
mov dword [ebp - 0x38], eax
dec dword [ebp - 0x24]
jne 0x473935
dec esi
mov dword [ebp - 0x20], esi
cmp esi, 0xffffe9bf
mov esi, dword [ebp - 0x18]
jg 0x473926
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x159a
jl 0x473923
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], 0xca4f833f
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0x4699
jge 0x4739ae
push 0xabc16c
call fcn.004a7217
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4739dd
mov dword [ebp - 0x24], 0x942a1e94
mov dword [ebp - 0x18], ebx
jmp 0x4739f3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x50], edi
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4739e9
mov byte [ebp - 0x31], bl
cmp byte [ebp - 0x31], 0
je 0x473a09
push ebx
call dword [0xad12c4]
mov dword [ebp - 0x2c], 2
cmp dword [ebp - 0x2c], ebx
jl 0x473a69
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x38], 0xca31
mov dword [ebp - 0x24], 8
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x50]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp - 0x38]
mov eax, dword [ebp - 0x20]
neg eax
cmp eax, dword [ebp - 0x38]
jle 0x473a50
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + eax*4 - 0x50]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x24], edi
dec dword [ebp - 0x2c]
jns 0x473a15
mov dword [ebp - 4], 4
cmp dword [ebp - 0x40], 0x60e6
jge 0x473a88
mov edx, 0xabc0d0
mov ecx, 0xacdff8
call fcn.00423c95
or dword [ebp - 4], 0xffffffff
jmp 0x473ab7
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], 8
mov dword [ebp - 0x24], 0x27e8
cmp dword [ebp - 0x24], 0x2ae7
jle 0x473b48
mov esi, ebx
mov dword [ebp - 0x38], ebx
mov ecx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x44], ebx
mov eax, esi
cdq
idiv ecx
mov eax, edx
mov dword [ebp - 0x20], eax
mov esi, ebx
or eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0xb0]
call fcn.0040195e
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x473b07
mov eax, dword [eax]
push eax
call fcn.004a7217
pop ecx
push ebx
push edi
lea ecx, [ebp - 0xb0]
call fcn.004223ff
inc esi
cmp esi, 0x21ea
mov eax, dword [ebp - 0x20]
jl 0x473aed
mov ecx, dword [ebp - 0x40]
inc ecx
mov dword [ebp - 0x40], ecx
cmp ecx, 0x758c
mov esi, dword [ebp - 0x38]
jl 0x473ade
inc esi
mov dword [ebp - 0x38], esi
cmp esi, 0x5a4b
jl 0x473ad9
mov esi, dword [ebp - 0x3c]
mov dword [ebp - 0x18], ebx
jmp 0x473b5b
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x68], 0x876942a1
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 2
jl 0x473b4d
mov dword [ebp - 4], 6
cmp dword [ebp - 0x24], 0x26f2
jge 0x473b7c
push 0xabc1a8
call fcn.004a7217
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x473bab
mov dword [ebp - 0x1c], ebx
jmp 0x473bbf
mov dword [ebp - 0x44], 0xe60f951f
cmp dword [ebp - 0x44], ebx
jne 0x473bc5
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xfffffff8
jg 0x473bb0
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x1c], edi
jg 0x473caf
mov dword [ebp - 0x18], 0x214f
cmp dword [ebp - 0x18], 0x221a
jle 0x473c48
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov ecx, ebx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x38], 0x5fb2
mov dword [ebp - 0x44], ebx
mov edi, esi
shl edi, cl
mov esi, ebx
mov eax, esi
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xacdff8
call fcn.00421edf
inc esi
cmp esi, 0x47cc
jl 0x473bfe
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x40], ecx
dec dword [ebp - 0x38]
mov esi, dword [ebp - 0x20]
jne 0x473bf5
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x5054
jl 0x473be9
inc esi
mov dword [ebp - 0x20], esi
cmp esi, 0x5b50
jl 0x473be6
xor edi, edi
inc edi
mov esi, dword [ebp - 0x3c]
mov byte [ebp - 0x31], bl
mov dword [ebp - 4], 8
cmp dword [ebp - 0x18], 0x20f9
jge 0x473c6a
mov edx, 0xabc208
mov ecx, 0xacdff8
call fcn.00423c95
or dword [ebp - 4], 0xffffffff
jmp 0x473c99
cmp byte [ebp - 0x31], 0
je 0x473ca7
push ebx
push ebx
call dword [0xad12bc]
inc dword [ebp - 0x1c]
jmp 0x473bc8
mov dword [esi], ebx
jmp 0x473cbf
mov ecx, dword [esi]
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [eax + ecx*4], edi
inc dword [esi]
cmp dword [esi], edi
jl 0x473cb3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret