Function at 0x474594
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4bd5c3
call fcn.004bc9c0
sub esp, 0xb0
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov eax, 0xdf60
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x18], 0xfffffffa
mov dword [ebp - 0x1c], 0x467356a0
mov eax, dword [ebp - 0x4c]
mov edi, 0xfffa
add eax, edi
mov dword [ebp - 0x18], eax
je 0x474655
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp - 0x50]
dec eax
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x4c]
xor edx, edx
cmp eax, ecx
setg dl
mov eax, dword [ebp - 0x50]
xor ecx, ecx
cmp edx, eax
setg cl
cmp dword [ebp - 0x50], ecx
je 0x474610
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x4c]
jl 0x474655
xor ebx, ebx
cmp dword [ebp - 0x18], ebx
jne 0x474657
mov dword [ebp - 0x1c], 3
cmp dword [ebp - 0x1c], ebx
jl 0x474698
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], bl
je 0x47464e
push ebx
push 0x8c6
push ebx
push ebx
push ebx
call dword [0xad1300]
dec dword [ebp - 0x1c]
jns 0x474637
jmp 0x474698
xor ebx, ebx
mov dword [ebp - 0x18], 3
cmp dword [ebp - 0x18], ebx
jl 0x474698
mov dword [ebp - 0x1c], ebx
jmp 0x474679
mov eax, dword [ebp - 0x1c]
mov dword [ebp + eax*4 - 0xa0], 0xe5de2cae
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 4
jl 0x474668
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp + eax*4 - 0x50]
xor ecx, ecx
test eax, eax
setns cl
mov dword [ebp - 0x98], ecx
dec dword [ebp - 0x18]
jns 0x474663
mov byte [ebp - 0x31], bl
mov dword [ebp - 0x18], 0xd444182b
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x3c], 0xbc106ec6
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 3
setne cl
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0x3c]
mov ecx, 0xffff1781
sub ecx, eax
add ecx, dword [ebp - 0x18]
je 0x4746f2
mov byte [ebp - 0x1d], bl
cmp byte [ebp - 0x1d], 0
je 0x4746ea
push ebx
push 0xdac
call dword [0xad1430]
push 0xfffffffffffffff9
pop esi
jmp 0x474970
mov dword [ebp - 0x30], 0x6266
cmp dword [ebp - 0x30], 0x631e
jle 0x47476b
mov edi, ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], 0x779a
or eax, edi
cdq
push edx
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040195e
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47472c
mov eax, dword [eax]
push eax
call fcn.004a7217
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xb8]
call fcn.004223ff
mov eax, dword [ebp - 0x24]
add eax, esi
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x1c]
jne 0x474712
inc esi
cmp esi, 0x7eed
jl 0x474706
inc edi
cmp edi, 0x6dc5
jl 0x474704
call dword [0xad1424]
mov edi, 0xfffa
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x30], 0x5f62
jge 0x474785
push 0xabc2f0
call fcn.004a7217
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x4747b0
mov dword [ebp - 0x1c], 0xffffffff
push 1
lea ecx, [ebp - 0x84]
call fcn.00422023
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
jmp 0x4747df
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x84]
mov dword [eax + ecx*4], 0xfffffffe
inc dword [ebp - 0x24]
cmp dword [ebp - 0x24], 1
jl 0x4747cc
mov dword [ebp - 0x28], 0x4fa1
cmp dword [ebp - 0x28], 0x5127
jle 0x47485b
mov edi, ebx
mov dword [ebp - 0x2c], ebx
mov esi, ebx
mov eax, ebx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], 0x2848
mov dword [ebp - 0x40], ebx
mov ebx, edi
mov ecx, eax
shl ebx, cl
mov edi, dword [ebp - 0x40]
mov eax, ebx
xor eax, edi
cdq
push edx
push eax
mov ecx, 0xacdff8
call fcn.00421edf
inc edi
cmp edi, 0x497
jl 0x474814
mov eax, dword [ebp - 0x30]
add eax, esi
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x24]
push 0
pop ebx
mov edi, dword [ebp - 0x2c]
jne 0x474808
inc esi
cmp esi, 0x24e
jl 0x4747fc
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x55ff
jl 0x4747fa
mov edi, 0xfffa
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 0x29855eec
setle cl
sub ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x2c], ecx
je 0x47487d
cmp dword [ebp - 0x3c], ebx
je 0x47487d
xor ecx, ecx
inc ecx
jmp 0x47487f
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
xor edx, edx
cmp ecx, eax
sete dl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
push 0xfffffffffffffff9
pop esi
cmp eax, esi
setne cl
cmp ecx, edx
jle 0x47489d
mov eax, dword [ebp - 0x18]
imul eax, dword [ebp - 0x38], 0xc6fe
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
cmp dword [ebp - 0x28], 0x4c7e
jge 0x4748c6
mov edx, 0xabc36c
mov ecx, 0xacdff8
call fcn.00423c95
or dword [ebp - 4], 0xffffffff
jmp 0x4748f4
mov dword [ebp - 0x1c], 0xc
jmp 0x47495f
mov dword [ebp - 0x40], 9
mov dword [ebp - 0x18], ebx
jmp 0x474957
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x3c]
xor ecx, ecx
cmp edx, eax
setne cl
xor eax, eax
cmp ecx, 0x3446
setl al
xor edx, edx
cmp eax, 0x869e
setl dl
mov eax, dword [ebp - 0x40]
xor ecx, ecx
cmp edx, eax
setle cl
xor eax, eax
cmp ecx, 1
setg al
sub eax, 0xfffffffd
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], ebx
jle 0x474909
dec dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0xb
jle 0x4748fd
lea ecx, [ebp - 0x84]
call fcn.004220f5
cmp byte [ebp - 0x31], 0
je 0x47497e
push ebx
push ebx
call dword [0xad12bc]
mov dword [ebp - 0x2c], 0x34e6d4f2
mov dword [ebp - 0x30], 0xffffffff
push 1
lea ecx, [ebp - 0x68]
call fcn.00422023
mov dword [ebp - 0x28], 0x5b1b6fd4
push 4
lea ecx, [ebp - 0x5c]
call fcn.00422023
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x40], 0xa7f4ea14
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x18], ebx
jmp 0x4749d3
mov eax, dword [ebp - 0x18]
mov dword [ebp + eax*4 - 0x90], 0x64dc9ed9
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 3
jl 0x4749c2
mov dword [ebp - 0x18], ebx
jmp 0x4749eb
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x68]
or dword [eax + ecx*4], 0xffffffff
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 1
jl 0x4749de
mov dword [ebp - 0x18], ebx
jmp 0x474a02
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 4
jl 0x4749f6
mov eax, dword [ebp - 0x68]
mov dword [eax], 1
cmp dword [ebp - 0x2c], 1
sbb esi, esi
neg esi
mov dword [ebp - 0x90], esi
mov dword [ebp - 0x30], 0x85fa
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x5c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp ecx, eax
setge dl
mov eax, dword [ebp - 0x30]
sub esi, eax
xor eax, eax
cmp esi, edx
setle al
cmp edi, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x40], eax
inc dword [ebp - 0x38]
lea ecx, [ebp - 0x5c]
call fcn.004220f5
lea ecx, [ebp - 0x68]
call fcn.004220f5
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret