Function at 0x47babf
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x4cbe69
call fcn.004cb2b8
sub esp, 0x120
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], 0x6c9a
xor ebx, ebx
cmp dword [ebp - 0x1c], 0x6cd1
jle 0x47bb6a
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x20], 0x25a8
mov edi, ebx
mov dword [ebp - 0x2c], edi
mov esi, dword [ebp - 0x14]
mov eax, esi
cdq
idiv edi
mov esi, edx
mov edi, 0x823
mov eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x114]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47bb28
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x114]
call fcn.00416734
dec esi
dec edi
jne 0x47bb0e
mov edi, dword [ebp - 0x2c]
inc edi
mov dword [ebp - 0x2c], edi
cmp edi, 0x2a2a
mov esi, dword [ebp - 0x14]
jl 0x47bb02
mov esi, dword [ebp - 0x18]
add dword [ebp - 0x14], esi
dec dword [ebp - 0x20]
jne 0x47bafa
inc esi
mov dword [ebp - 0x18], esi
cmp esi, 0x1571
jl 0x47baf0
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x1c], 0x6bc3
jge 0x47bb81
push 0xacb4b4
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47bba7
mov dword [ebp - 0x1c], 0x10cb
cmp dword [ebp - 0x1c], 0x1321
jle 0x47bbfd
mov esi, ebx
mov edi, ebx
lea eax, [edi + esi]
cdq
push edx
push eax
lea ecx, [ebp - 0xfc]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47bbd6
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push 1
lea ecx, [ebp - 0xfc]
call fcn.00416734
inc edi
cmp edi, 0x73d5
jl 0x47bbbb
inc esi
cmp esi, 0x26a6
jl 0x47bbb9
mov dword [ebp - 0x28], 0xfffffff6
mov dword [ebp - 4], 2
cmp dword [ebp - 0x1c], 0xe52
jge 0x47bc1f
push 0xacb4e0
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47bc45
mov dword [ebp - 0x74], 6
mov dword [ebp - 0x98], 8
mov dword [ebp - 0x14], ebx
push 3
pop edi
jmp 0x47bc6c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x70], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x47bc5e
lea eax, [ebp - 0x74]
push eax
lea edx, [ebp - 0x98]
lea ecx, [ebp - 0x28]
call fcn.0047b885
pop ecx
mov dword [ebp - 0x28], ebx
jmp 0x47bd2f
mov dword [ebp - 0x14], 0x5b78c6ae
mov dword [ebp - 0x1c], 0x6352b728
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0x70], ebx
jne 0x47bd39
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0x70], ebx
je 0x47bcd7
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 0x28]
xor ecx, ecx
cmp eax, 0x6a10b913
setne cl
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
add eax, dword [ebp - 0x74]
je 0x47bcd7
xor edx, edx
inc edx
jmp 0x47bcd9
mov edx, ebx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x70]
xor ecx, ecx
cmp edx, eax
setl cl
mov eax, dword [ebp - 0x28]
cmp dword [ebp + eax*4 - 0x70], ecx
je 0x47bcf9
cmp dword [ebp - 0x14], ebx
jne 0x47bcf9
mov eax, ebx
jmp 0x47bcfc
xor eax, eax
inc eax
xor edx, edx
cmp eax, 0xfffffffe
setne dl
inc edx
imul edx, dword [ebp - 0x14]
dec edx
neg edx
sbb edx, edx
neg edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + eax*4 - 0x70]
imul ecx, edx
mov eax, dword [ebp - 0x28]
mov eax, dword [ebp + eax*4 - 0x70]
add eax, ecx
mov ecx, dword [ebp - 0x14]
imul ecx, eax
mov dword [ebp - 0x6c], ecx
inc dword [ebp - 0x28]
cmp dword [ebp - 0x28], 2
jle 0x47bc8c
mov esi, dword [ebp - 0x24]
cmp dword [esi + 0x10], ebx
jne 0x47bd48
xor al, al
jmp 0x47c4f5
mov dword [ebp - 0x5c], 0xecf4a416
mov dword [ebp - 0x20], 0x32a1
mov dword [ebp - 0x1c], 0xfffffff8
mov dword [ebp - 0x1c], 0x33f29c8d
mov dword [ebp - 0x14], ebx
jmp 0x47bd77
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x54], 0x33992443
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jl 0x47bd69
mov eax, dword [ebp - 0x54]
cmp dword [ebp - 0x54], ebx
jne 0x47bd98
mov ecx, dword [ebp - 0x54]
mov eax, dword [ebp - 0x54]
xor edx, edx
cmp ecx, eax
setle dl
mov dword [ebp - 0x5c], edx
mov eax, dword [ebp - 0x5c]
cmp dword [ebp - 0x20], ebx
je 0x47bda0
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x54]
sub eax, 0xfffffffd
neg eax
sbb eax, eax
inc eax
mov edx, dword [ebp - 0x54]
sub edx, eax
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x54]
xor ecx, ecx
cmp edx, eax
setg cl
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x5c], 0xdef9
push 0x1034
lea eax, [ebp - 0x58]
push eax
push 0x19ff
push 0xb4d
push 0x1b82
push 0x3b46
push 0x7fd1
push ebx
call fcn.0047f11e
add esp, 0x20
push 4
lea ecx, [ebp - 0xa4]
call fcn.00416294
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x1c], 0x2fd89d68
mov dword [ebp - 0x1c], 0xfffffffc
lea edx, [ebp - 0xa4]
lea ecx, [ebp - 0x38]
call fcn.0047a5d6
mov dword [ebp - 0x38], ebx
jmp 0x47be3c
mov eax, dword [ebp - 0x38]
mov dword [ebp + eax*4 - 0xe4], ebx
inc dword [ebp - 0x38]
cmp dword [ebp - 0x38], edi
jl 0x47be2f
mov dword [ebp - 0x40], ebx
jmp 0x47befe
mov dword [ebp - 0x3c], 0xce57bf5c
mov dword [ebp - 0x88], 0x2afe2499
push 1
lea ecx, [ebp - 0xd8]
call fcn.00416294
mov dword [ebp - 0x94], 0xffffffff
lea edx, [ebp - 0xd8]
lea ecx, [ebp - 0xcc]
call fcn.0047aa08
mov dword [ebp - 0x3c], ebx
jmp 0x47bee0
mov dword [ebp - 0x44], 0xa6deec54
mov dword [ebp - 0x8c], 0xffffffff
mov dword [ebp - 0x44], edi
cmp dword [ebp - 0x44], ebx
jl 0x47bedd
mov dword [ebp - 0x90], 0x9229a275
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x88]
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0xa4]
call fcn.0047b8dd
add esp, 0x14
dec dword [ebp - 0x44]
jns 0x47bea0
inc dword [ebp - 0x3c]
cmp dword [ebp - 0x3c], edi
jle 0x47be87
lea ecx, [ebp - 0x94]
call fcn.0047ad5d
lea ecx, [ebp - 0xd8]
call fcn.00416366
inc dword [ebp - 0x40]
cmp dword [ebp - 0x40], edi
jle 0x47be49
mov byte [ebp - 0x31], bl
lea ecx, [ebp - 0x31]
call fcn.0047b0bc
lea ecx, [ebp - 0xa4]
call fcn.00416366
cmp dword [esi + 0x14], 0x10
jb 0x47bf27
mov ecx, dword [esi]
jmp 0x47bf29
mov ecx, esi
mov dword [ebp - 0x60], ecx
cmp dword [esi + 0x14], 0x10
jb 0x47bf36
mov edx, dword [esi]
jmp 0x47bf38
mov edx, esi
mov eax, dword [esi + 0x10]
add eax, edx
cmp ecx, eax
je 0x47c3ec
mov al, byte [ecx]
cmp al, 0x30
jl 0x47c0e8
cmp al, 0x39
jg 0x47c0e8
mov dword [ebp - 0x18], 0x31fadacd
mov dword [ebp - 0x14], ebx
jmp 0x47bf74
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x84], 4
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 4
jl 0x47bf63
cmp dword [ebp - 0x80], ebx
jne 0x47bf8b
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x80]
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x84]
sub edx, dword [ebp - 0x84]
neg edx
sbb edx, edx
inc edx
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
cmp edx, eax
setg cl
mov eax, dword [ebp - 0x84]
add eax, ecx
xor ecx, ecx
cmp eax, edi
setl cl
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], edi
jg 0x47c0cc
mov dword [ebp - 0x14], ebx
jmp 0x47bfd7
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x64], 0x5acee617
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x47bfc9
mov dword [ebp - 0x14], 0x51fd
cmp dword [ebp - 0x14], 0x53fb
jle 0x47c078
mov edi, ebx
mov dword [ebp - 0x20], ebx
mov esi, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
cdq
idiv esi
mov esi, edx
mov edi, ebx
mov ecx, ebx
mov dword [ebp - 0x1c], ebx
mov eax, edi
sar eax, cl
and eax, esi
cdq
push edx
push eax
lea ecx, [ebp - 0x12c]
call fcn.0040191d
pop ecx
pop ecx
cmp dword [eax + 0x14], 0x10
jb 0x47c02a
mov eax, dword [eax]
push eax
call fcn.004b5e77
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x12c]
call fcn.00416734
mov ecx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x243a
jl 0x47c00c
inc edi
cmp edi, 0x6826
jl 0x47c007
mov esi, dword [ebp - 0x2c]
inc esi
mov dword [ebp - 0x2c], esi
cmp esi, 0x395f
mov edi, dword [ebp - 0x20]
jl 0x47bffb
inc edi
mov dword [ebp - 0x20], edi
cmp edi, 0x4d36
jl 0x47bff6
push 3
pop edi
call fcn.0047b63d
mov dword [ebp - 4], 4
cmp dword [ebp - 0x14], 0x5159
jge 0x47c098
push 0xacb548
call fcn.004b5e77
pop ecx
or dword [ebp - 4], 0xffffffff
jmp 0x47c0c1
inc dword [ebp - 0x64]
inc dword [ebp - 0x18]
jmp 0x47bfbb
mov esi, dword [ebp - 0x58]
imul edx, dword [esi], 0xa
mov ecx, dword [ebp - 0x60]
movsx eax, byte [ecx]
add eax, 0xffffffd0
add eax, edx
mov dword [esi], eax
inc ecx
mov esi, dword [ebp - 0x24]
jmp 0x47bf29
mov dword [ebp - 0x1c], 0x3bb0
mov esi, 0xadf2f8
cmp dword [ebp - 0x1c], 0x3c9d
jle 0x47c12a
mov edi, ebx
mov eax, ebx
mov dword [ebp - 0x24], ebx
xor eax, edi
cdq
push edx
push eax
mov ecx, esi
call fcn.00416069
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x203b
jl 0x47c104
inc edi
cmp edi, 0x2243
jl 0x47c0ff
push 3
pop edi
push 4
lea ecx, [ebp - 0xbc]
call fcn.00416294
mov dword [ebp - 4], 6
cmp dword [ebp - 0x1c], 0x3930
jge 0x47c153
mov edx, 0xacb594
mov ecx, esi
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x47c181
mov dword [ebp - 0x18], 0x252cb136
mov dword [ebp - 0x24], 0x1ec1fcc8
mov dword [ebp - 0x18], 0x5735
cmp dword [ebp - 0x18], 0x578e
jle 0x47c1fb
mov edi, ebx
mov dword [ebp - 0x14], ebx
mov ecx, ebx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x20], 0x122a
mov eax, ecx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c], 0x51aa
xor eax, edi
cdq
push edx
push eax
mov ecx, esi
call fcn.00416069
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
dec dword [ebp - 0x1c]
jne 0x47c1bc
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
add ecx, eax
mov dword [ebp - 0x2c], ecx
dec dword [ebp - 0x20]
jne 0x47c1b0
inc eax
mov dword [ebp - 0x14], eax
cmp eax, 0x5ced
jl 0x47c1a4
inc edi
cmp edi, 0x3fe5
jl 0x47c1a1
push 3
pop edi
mov dword [ebp - 4], 8
cmp dword [ebp - 0x18], 0x559d
jge 0x47c217
mov edx, 0xacb5c8
mov ecx, esi
call fcn.00418565
or dword [ebp - 4], 0xffffffff
jmp 0x47c240
mov dword [ebp - 0x4c], ebx
jmp 0x47c254
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xbc]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x4c]
cmp dword [ebp - 0x4c], 4
jl 0x47c245
mov dword [ebp - 0x18], ebx
cmp dword [ebp - 0x18], edi
jg 0x47c2dc
mov esi, dword [ebp - 0xbc]
mov dword [ebp - 0x1c], 0x4b7b8319
mov dword [ebp - 0x20], 0x65ab4d25
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
xor eax, eax
cmp dword [esi + 0xc], ebx
setl al
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0x53423637
setne cl
xor edx, edx
cmp ecx, 0x477ae27
setne dl
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
cmp edx, eax
setle bl
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp ebx, eax
setl cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], edi
push 0
pop ebx
jle 0x47c268
lea ecx, [ebp - 0xbc]
call fcn.00416366
lea eax, [ebp - 0x58]
push eax
push ebx
call fcn.00483fb7
pop ecx
pop ecx
mov dword [ebp - 0x18], 0x516a
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x24], 0x718b9628
mov dword [ebp - 0x24], 0x7c295a52
mov dword [ebp - 0x14], ebx
jmp 0x47c32c
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], 0x4b7b8319
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], edi
jl 0x47c31b
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
cmp eax, 1
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0xc8], eax
mov ecx, dword [ebp - 0x18]
imul ecx, eax
sub ecx, 0x4cc511ec
je 0x47c383
mov eax, dword [ebp - 0xc8]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], ebx
jmp 0x47c3a2
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0xc8], 0x6d065835
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 2
jle 0x47c391
push edi
lea ecx, [ebp - 0xb0]
call fcn.00416294
mov dword [ebp - 0x48], ebx
jmp 0x47c3cc
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb0]
mov dword [eax + ecx*4], 0x7ddc85f7
inc dword [ebp - 0x48]
cmp dword [ebp - 0x48], edi
jl 0x47c3b9
lea ecx, [ebp - 0xb0]
call fcn.0047ba8a
lea ecx, [ebp - 0xb0]
call fcn.00416366
jmp 0x47bd41
mov dword [ebp - 0x14], ebx
jmp 0x47c3ff
mov eax, dword [ebp - 0x14]
mov dword [ebp + eax*4 - 0x30], 0xfffffffd
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 1
jl 0x47c3f1
mov dword [ebp - 0x30], 0xffffffe7
jmp 0x47c4e9
mov dword [ebp - 0x18], 0x98070ade
mov dword [ebp - 0x20], 0xfffffffc
mov dword [ebp - 0x18], 0x17
jmp 0x47c4d7
mov dword [ebp - 0x14], 0xf5ed9a92
mov dword [ebp - 0x1c], 0xfffffffd
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], 0x2e3a4c63
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x18]
cmp dword [ebp - 0x20], ebx
je 0x47c457
xor ebx, ebx
inc ebx
inc dword [ebp - 0x2c]
mov eax, dword [ebp - 0x2c]
xor edx, edx
cmp eax, ebx
setl dl
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp edx, eax
setge cl
xor ebx, ebx
cmp ecx, 1
setge bl
mov ecx, dword [ebp - 0x1c]
dec ecx
neg ecx
sbb ecx, ecx
neg ecx
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp ecx, eax
setne dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp ebx, eax
setge cl
add edx, ecx
mov ecx, dword [ebp - 0x20]
add ecx, 0xd317
add ecx, edx
mov eax, dword [ebp - 0x30]
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp - 0x14]
xor ecx, ecx
cmp edx, eax
sete cl
mov dword [ebp - 0x14], ecx
xor ebx, ebx
cmp dword [ebp - 0x14], ebx
je 0x47c4c9
cmp dword [ebp - 0x18], ebx
je 0x47c4c9
xor eax, eax
inc eax
jmp 0x47c4cb
mov eax, ebx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x20], eax
inc dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0x18
jle 0x47c42b
cmp dword [ebp - 0x30], ebx
jne 0x47c4f3
inc dword [ebp - 0x30]
cmp dword [ebp - 0x30], 0xffffffee
jne 0x47c411
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret