Function at 0x1023820
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1804
call fcn.0115cb30
cmp dword [ebp + 8], 0
jne 0x102383a
xor al, al
jmp 0x1023fba
mov dword [ebp - 8], 0x84
mov dword [ebp - 0x1024], 0x1018
mov dword [ebp - 0x1034], 0xc
mov eax, dword [0x145685c]
mov dword [ebp - 0x1030], eax
mov ecx, dword [0x1456860]
mov dword [ebp - 0x102c], ecx
mov dword [ebp - 0x1028], 0xc3d5cfef
mov byte [ebp - 0x1040], 0
mov byte [ebp - 0x103f], 0
mov edx, dword [0x13949e8]
mov dword [ebp - 0x1358], edx
lea eax, [ebp - 0x1354]
push eax
mov ecx, dword [ebp - 0x1358]
push ecx
call fcn.0108a2d0
add esp, 8
mov dword [ebp - 0x1350], eax
cmp dword [ebp - 0x1350], 0
jne 0x1023ceb
mov byte [ebp - 0x1040], 0
lea edx, [ebp - 0x134c]
push edx
lea eax, [ebp - 0x1354]
push eax
mov ecx, dword [ebp - 0x1358]
push ecx
call fcn.0108a350
add esp, 0xc
mov dword [ebp - 0x1350], eax
cmp dword [ebp - 0x1350], 0
jne 0x1023ae0
mov dword [ebp - 0x135c], 0
jmp 0x102390b
mov edx, dword [ebp - 0x135c]
add edx, 1
mov dword [ebp - 0x135c], edx
cmp dword [ebp - 0x135c], 8
jge 0x102398e
mov byte [ebp - 0x135d], 0
mov dword [ebp - 0x1364], 0
jmp 0x1023936
mov eax, dword [ebp - 0x1364]
add eax, 1
mov dword [ebp - 0x1364], eax
cmp dword [ebp - 0x1364], 8
jge 0x102396e
lea ecx, [ebp - 0x1370]
push ecx
call dword [0x1557682]
movzx edx, byte [ebp - 0x135d]
mov eax, dword [ebp - 0x1370]
and eax, 1
mov ecx, dword [ebp - 0x1364]
shl eax, cl
or edx, eax
mov byte [ebp - 0x135d], dl
jmp 0x1023927
xor ecx, ecx
jne 0x1023914
xor edx, edx
jne 0x1023914
mov eax, dword [ebp - 0x135c]
mov cl, byte [ebp - 0x135d]
mov byte [ebp + eax - 0x1244], cl
jmp 0x10238fc
xor edx, edx
jne 0x10238f0
mov eax, fcn.01022080
test eax, eax
je 0x1023a16
push 8
call fcn.0115cedd
add esp, 4
mov dword [ebp - 0x17ec], eax
mov ecx, dword [ebp - 0x17ec]
mov dword [ebp - 0x1374], ecx
cmp dword [ebp - 0x1374], 0
je 0x1023a16
mov dword [ebp - 0x1378], 8
lea edx, [ebp - 0x1378]
push edx
mov eax, dword [ebp - 0x1374]
push eax
push 8
lea ecx, [ebp - 0x1348]
push ecx
push 1
call fcn.01022080
add esp, 0x14
mov dword [ebp - 0x137c], eax
cmp dword [ebp - 0x137c], 0
jne 0x1023a16
push 8
mov edx, dword [ebp - 0x1374]
push edx
lea eax, [ebp - 0x1348]
push eax
call fcn.0115b060
add esp, 0xc
xor ecx, ecx
jne 0x1023996
mov edx, fcn.01022080
test edx, edx
je 0x1023a9e
push 8
call fcn.0115cedd
add esp, 4
mov dword [ebp - 0x17f0], eax
mov eax, dword [ebp - 0x17f0]
mov dword [ebp - 0x1380], eax
cmp dword [ebp - 0x1380], 0
je 0x1023a9e
mov dword [ebp - 0x1384], 8
lea ecx, [ebp - 0x1384]
push ecx
mov edx, dword [ebp - 0x1380]
push edx
push 8
lea eax, [ebp - 0x1244]
push eax
push 1
call fcn.01022080
add esp, 0x14
mov dword [ebp - 0x1388], eax
cmp dword [ebp - 0x1388], 0
jne 0x1023a9e
push 8
mov ecx, dword [ebp - 0x1380]
push ecx
lea edx, [ebp - 0x1244]
push edx
call fcn.0115b060
add esp, 0xc
xor eax, eax
jne 0x1023a1e
lea ecx, [ebp - 0x1248]
push ecx
lea edx, [ebp - 0x134c]
push edx
lea eax, [ebp - 0x1354]
push eax
mov ecx, dword [ebp - 0x1358]
push ecx
call fcn.0108a3a0
add esp, 0x10
mov dword [ebp - 0x1350], eax
cmp dword [ebp - 0x1350], 0
jne 0x1023ae0
mov byte [ebp - 0x1040], 1
xor edx, edx
jne 0x10238b9
mov byte [ebp - 0x103f], 0
mov dword [ebp - 0x138c], 0
jmp 0x1023b0a
mov eax, dword [ebp - 0x138c]
add eax, 1
mov dword [ebp - 0x138c], eax
cmp dword [ebp - 0x138c], 8
jge 0x1023b8d
mov byte [ebp - 0x138d], 0
mov dword [ebp - 0x1394], 0
jmp 0x1023b35
mov ecx, dword [ebp - 0x1394]
add ecx, 1
mov dword [ebp - 0x1394], ecx
cmp dword [ebp - 0x1394], 8
jge 0x1023b6d
lea edx, [ebp - 0x13a0]
push edx
call dword [0x1557682]
movzx eax, byte [ebp - 0x138d]
mov edx, dword [ebp - 0x13a0]
and edx, 1
mov ecx, dword [ebp - 0x1394]
shl edx, cl
or eax, edx
mov byte [ebp - 0x138d], al
jmp 0x1023b26
xor eax, eax
jne 0x1023b13
xor ecx, ecx
jne 0x1023b13
mov edx, dword [ebp - 0x138c]
mov al, byte [ebp - 0x138d]
mov byte [ebp + edx - 0x1348], al
jmp 0x1023afb
xor ecx, ecx
jne 0x1023aef
mov dword [ebp - 0x134c], 8
lea edx, [ebp - 0x134c]
push edx
lea eax, [ebp - 0x1354]
push eax
mov ecx, dword [ebp - 0x1358]
push ecx
call fcn.0108a430
add esp, 0xc
mov dword [ebp - 0x1350], eax
cmp dword [ebp - 0x1350], 0
jne 0x1023cb1
lea edx, [ebp - 0x1144]
push edx
lea eax, [ebp - 0x14a8]
push eax
lea ecx, [ebp - 0x1354]
push ecx
mov edx, dword [ebp - 0x1358]
push edx
call fcn.0108a480
add esp, 0x10
mov dword [ebp - 0x1350], eax
cmp dword [ebp - 0x1350], 0
jne 0x1023cb1
mov eax, fcn.01022080
test eax, eax
je 0x1023c86
push 8
call fcn.0115cedd
add esp, 4
mov dword [ebp - 0x17f4], eax
mov ecx, dword [ebp - 0x17f4]
mov dword [ebp - 0x14ac], ecx
cmp dword [ebp - 0x14ac], 0
je 0x1023c86
mov dword [ebp - 0x14b0], 8
lea edx, [ebp - 0x14b0]
push edx
mov eax, dword [ebp - 0x14ac]
push eax
push 8
lea ecx, [ebp - 0x14a4]
push ecx
push 2
call fcn.01022080
add esp, 0x14
mov dword [ebp - 0x14b4], eax
cmp dword [ebp - 0x14b4], 0
jne 0x1023c86
push 8
mov edx, dword [ebp - 0x14ac]
push edx
lea eax, [ebp - 0x14a4]
push eax
call fcn.0115b060
add esp, 0xc
xor ecx, ecx
jne 0x1023c06
push 8
lea edx, [ebp - 0x1348]
push edx
lea eax, [ebp - 0x14a4]
push eax
call fcn.0115c5b0
add esp, 0xc
test eax, eax
jne 0x1023cb1
mov byte [ebp - 0x103f], 1
xor ecx, ecx
jne 0x1023ae8
movzx edx, byte [ebp - 0x1040]
test edx, edx
je 0x1023ceb
movzx eax, byte [ebp - 0x103f]
test eax, eax
je 0x1023ceb
lea ecx, [ebp - 0x1354]
push ecx
mov edx, dword [ebp - 0x1358]
push edx
call fcn.0108a500
add esp, 8
mov dword [ebp - 0x1350], eax
xor eax, eax
jne 0x1023876
movzx ecx, byte [ebp - 0x1040]
test ecx, ecx
je 0x1023d09
movzx edx, byte [ebp - 0x103f]
test edx, edx
jne 0x1023d10
mov dword [ebp - 4], 0x4b630fe3
mov dword [ebp - 0x16dc], 8
lea eax, [ebp - 0x16dc]
push eax
lea ecx, [ebp - 0x17e4]
push ecx
push 8
lea edx, [ebp - 0x1140]
push edx
push 2
call fcn.01022080
add esp, 0x14
mov dword [ebp - 0x16dc], 8
lea eax, [ebp - 0x16dc]
push eax
lea ecx, [ebp - 0x16d4]
push ecx
push 8
lea edx, [ebp - 0x1244]
push edx
push 2
call fcn.01022080
add esp, 0x14
mov eax, dword [ebp - 0x17e4]
xor eax, dword [ebp - 0x16d4]
mov dword [ebp - 0x15bc], eax
mov ecx, dword [ebp - 0x17e0]
xor ecx, dword [ebp - 0x16d0]
mov dword [ebp - 0x15b8], ecx
xor edx, edx
jne 0x1023d66
push 0x104
push 0
lea eax, [ebp - 0x17e8]
push eax
call fcn.0115ae00
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x16d8]
push ecx
call fcn.0115ae00
add esp, 0xc
xor edx, edx
jne 0x1023d10
mov dword [ebp - 0x15c4], 0x1b
mov eax, dword [ebp - 0x15c4]
push eax
call fcn.0115cedd
add esp, 4
mov dword [ebp - 0x17f8], eax
mov ecx, dword [ebp - 0x17f8]
mov dword [ebp - 0x14b8], ecx
mov edx, dword [ebp - 0x1024]
add edx, 0xb
mov dword [ebp - 0x15cc], edx
mov eax, dword [ebp - 0x15cc]
push eax
call fcn.0115cedd
add esp, 4
mov dword [ebp - 0x17fc], eax
mov ecx, dword [ebp - 0x17fc]
mov dword [ebp - 0x15c8], ecx
lea edx, [ebp - 0x15c4]
push edx
mov eax, dword [ebp - 0x14b8]
push eax
push 0x10
lea ecx, [ebp - 0x1034]
push ecx
push 8
lea edx, [ebp - 0x15bc]
push edx
push 1
call fcn.0108a570
add esp, 0x1c
lea eax, [ebp - 0x15cc]
push eax
mov ecx, dword [ebp - 0x15c8]
push ecx
mov edx, dword [ebp - 0x15c4]
push edx
mov eax, dword [ebp - 0x14b8]
push eax
lea ecx, [ebp - 0x1354]
push ecx
mov edx, dword [ebp - 0x1358]
push edx
call fcn.0108a540
add esp, 0x18
mov dword [ebp - 0x1350], eax
lea eax, [ebp - 0x1020]
test eax, eax
je 0x1023ebe
lea ecx, [ebp - 0x1024]
push ecx
lea edx, [ebp - 0x1020]
push edx
mov eax, dword [ebp - 0x15cc]
push eax
mov ecx, dword [ebp - 0x15c8]
push ecx
push 8
lea edx, [ebp - 0x15bc]
push edx
push 2
call fcn.0108a570
add esp, 0x1c
mov dword [ebp - 0x1350], eax
mov eax, dword [ebp - 0x14b8]
mov dword [ebp - 0x1800], eax
mov ecx, dword [ebp - 0x1800]
push ecx
call fcn.0115ced8
add esp, 4
mov edx, dword [ebp - 0x15c8]
mov dword [ebp - 0x1804], edx
mov eax, dword [ebp - 0x1804]
push eax
call fcn.0115ced8
add esp, 4
xor ecx, ecx
jne 0x1023d10
cmp dword [ebp - 0x1350], 0
je 0x1023f0c
mov dword [ebp - 4], 0x6ddb58ec
lea edx, [ebp - 0x1354]
push edx
mov eax, dword [ebp - 0x1358]
push eax
call fcn.0108a310
add esp, 8
mov dword [ebp - 0x1350], eax
push 0x31c
push 0
lea ecx, [ebp - 0x1358]
push ecx
call fcn.0115ae00
add esp, 0xc
xor edx, edx
jne 0x1023f0c
mov dword [ebp - 4], 0xb502cbf7
xor eax, eax
jne 0x1023876
cmp dword [ebp - 4], 0xb502cbf7
jne 0x1023fa3
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 0x101c]
jae 0x1023f77
mov edx, dword [ebp - 0x101c]
mov dword [ebp - 8], edx
mov dword [ebp - 4], 0xb5bc4130
jmp 0x1023fa3
mov eax, dword [ebp - 0x1020]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x101c]
push ecx
lea edx, [ebp - 0x1018]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.0115b060
add esp, 0xc
mov ecx, dword [ebp - 0x101c]
mov dword [ebp - 8], ecx
xor edx, edx
jne 0x1023841
cmp dword [ebp - 4], 0xb502cbf7
jne 0x1023fb8
mov al, 1
jmp 0x1023fba
xor al, al
mov esp, ebp
pop ebp
ret