Function at 0x10004ef0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x1001a028]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0xc], 0x91901ff
mov word [ebp - 8], 0x1120
call fcn.10002150
movzx esi, ax
add esp, 4
mov eax, 0x9000
cmp si, ax
jne 0x100057ea
cmp byte [0x1001a7aa], 1
mov eax, 0xca41
push ebx
je 0x1000501c
cmp word [ebp + 0x14], ax
jne 0x1000501c
push 0x100327e0
push 0x1f80
call fcn.10001a40
push 0x100327e0
push 0x1fa0
mov esi, eax
call fcn.10001a40
push 0x100327e0
push 0x1fc0
mov dword [ebp - 0x94], eax
call fcn.10001a40
add esp, 0x18
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x94]
xor bl, bl
nop dword [eax + eax]
movzx ecx, bl
mov dl, byte [ecx + eax]
xor dl, byte [ecx + esi]
cmp dl, 0xff
jne 0x10004fb8
add bl, 1
cmp bl, 0x10
jb 0x10004fa0
jmp 0x10004fc1
cmp bl, 0x10
jb 0x10005160
mov ebx, dword [ebp - 0x98]
xor dl, dl
nop dword [eax]
movzx eax, dl
mov cl, byte [eax + ebx]
xor cl, byte [eax + esi]
cmp cl, 0xaa
jne 0x10005157
inc dl
cmp dl, 0x10
jb 0x10004fd0
mov ebx, dword [ebp - 0x64]
mov edx, 0x10
mov ecx, ebx
sub esi, ebx
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edx, 1
jne 0x10004ff5
xor dl, dl
movzx ecx, dl
mov al, byte [ebx + ecx]
cmp al, byte [ebx + ecx + 8]
jne 0x1000516a
inc dl
cmp dl, 8
jb 0x10005005
mov eax, dword [0x1001a010]
movups xmm0, xmmword [section..data]
mov dword [0x1003b820], eax
mov eax, dword [0x1001a014]
push edi
mov dword [0x1003b824], eax
movups xmmword [0x1003b7e4], xmm0
call fcn.10001cb0
mov ebx, 0x9000
add esp, 4
cmp ax, bx
jne 0x100057e4
push edi
call fcn.10001fa0
movzx esi, ax
add esp, 4
mov eax, 0xe025
cmp si, ax
je 0x100057e9
push edi
call fcn.10001cb0
mov ecx, 0xe023
movzx eax, ax
add esp, 4
cmp si, cx
jne 0x10005237
mov esi, ebx
cmp ax, si
jne 0x100057e4
push 0
lea eax, [ebp - 0x3c]
push eax
push 1
push 0x1003b818
push 4
push 0x202ff
push edi
call fcn.100026c0
push 0xba0f
push edi
call fcn.10002fe0
push 0xbb0f
push edi
call fcn.10002fe0
push 0xb30f
push edi
call fcn.10002fe0
push 0xab0f
push edi
call fcn.10002fe0
push 0xa30f
push edi
call fcn.10002fe0
add esp, 0x44
cmp ax, si
jne 0x1000543b
xor bh, bh
mov byte [ebp - 0x94], bh
nop dword [eax]
movzx eax, byte [0x1001a7a8]
push 0x1003b7e4
push 0x100327e0
push eax
push dword [ebp - 0x94]
push 0x1003b818
call fcn.10001be0
movups xmm0, xmmword [0x1003b7e4]
add esp, 0x14
xor bl, bl
movups xmmword [0x1003b834], xmm0
movups xmmword [0x1003b879], xmm0
nop dword [eax]
push edi
call fcn.10002c90
add esp, 4
cmp ax, si
je 0x1000517d
inc bl
cmp bl, 2
jb 0x10005140
jmp 0x10005182
cmp dl, 0x10
jae 0x10004fe9
mov esi, 0xe029
jmp 0x100057e9
cmp dl, 8
jae 0x1000501c
mov esi, 0xe02a
jmp 0x100057e9
cmp bl, 2
jb 0x1000519d
inc bh
mov byte [ebp - 0x94], bh
cmp bh, 9
jbe 0x10005100
mov esi, 0xe023
jmp 0x100057e9
push 0
xorps xmm0, xmm0
mov byte [ebp - 0x2c], 0xcc
lea eax, [ebp - 0x57]
movups xmmword [ebp - 0x5c], xmm0
push 0
push eax
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x5c], 0x20104ac
mov byte [ebp - 0x58], 0xcc
call fcn.10008f00
lea eax, [ebp - 0x58]
push eax
push 1
push eax
push 0x1003b7f4
push 0x1003b7e4
call fcn.10001450
push 0x3e8
lea eax, [ebp - 0x94]
push eax
push 1
lea eax, [ebp - 0x3c]
push eax
movzx eax, byte [ebp - 0x5b]
inc ax
movzx eax, ax
push eax
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.10002730
mov eax, dword [0x1003b828]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push 4
push eax
push 0xdb00
push edi
call fcn.10002e50
movzx esi, ax
mov ecx, 0x9000
add esp, 0x4c
cmp si, cx
je 0x100057e9
mov esi, 0xe023
jmp 0x100057e9
cmp ax, bx
jne 0x100057e4
push 0
lea eax, [ebp - 0x3c]
push eax
push 2
push 0x1003b818
push 4
push 0x20200
push edi
call fcn.100026c0
movzx eax, ax
add esp, 0x1c
cmp eax, 2
jne 0x100057d4
cmp byte [ebp - 0x3c], 0
jne 0x100057e4
mov eax, dword [0x1003b818]
movq xmm0, qword [0x10013774]
movups xmm1, xmmword [section..data]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1001377c]
push 0
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x93]
push 1
push eax
lea eax, [ebp - 0x90]
movq qword [ebp - 0x18], xmm0
xorps xmm0, xmm0
mov word [ebp - 0x94], 0xd8
push eax
push 0x202d8
movups xmmword [ebp - 0x28], xmm1
movups xmmword [0x1003b834], xmm1
movups xmmword [ebp - 0x90], xmm0
movups xmmword [ebp - 0x80], xmm0
call fcn.100022e0
push 0x3e8
lea ecx, [ebp - 0x94]
movzx eax, ax
push ecx
push 2
lea ecx, [ebp - 0x70]
push ecx
push eax
lea eax, [ebp - 0x90]
push eax
push edi
call fcn.10002730
add esp, 0x30
xor bl, bl
nop dword [eax]
movzx eax, bl
lea esi, [ebp - 0x2c]
xorps xmm0, xmm0
mov cl, 8
movups xmmword [ebp - 0x5c], xmm0
inc cl
mov byte [ebp - 0x5c], 0xac
lea edx, [eax + 0x80]
mov byte [ebp - 0x5b], cl
lea esi, [esi + eax*4]
or edx, 0x10200
mov eax, edx
mov byte [ebp - 0x58], dl
shr eax, 0x10
mov byte [ebp - 0x5a], al
mov eax, edx
shr eax, 8
mov byte [ebp - 0x59], al
mov eax, dword [esi]
mov dword [ebp - 0x57], eax
lea eax, [ebp - 0x58]
push 5
push eax
movups xmmword [ebp - 0x4c], xmm0
call fcn.100016c0
push 0x3e8
mov byte [ebp - 0x53], al
lea ecx, [ebp - 0x94]
movzx eax, byte [ebp - 0x5b]
push ecx
push 1
inc ax
lea ecx, [ebp - 0x70]
push ecx
movzx eax, ax
push eax
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.10002730
add esp, 0x24
cmp word [ebp - 0x94], 1
jne 0x1000539d
cmp byte [ebp - 0x70], 0
jne 0x1000539d
add bl, 1
mov eax, 0x9000
cmp bl, 8
jb 0x10005300
jmp 0x100053a2
mov eax, 0xe026
mov ecx, 0x9000
movzx esi, ax
cmp ax, cx
jne 0x100057e9
push edi
call fcn.10001cb0
mov esi, 0x9000
add esp, 4
cmp ax, si
jne 0x100057e4
push 0
lea eax, [ebp - 0x3c]
push eax
push 2
push 0x1003b818
push 4
push 0x202ff
push edi
call fcn.100026c0
push 0xa202
push edi
call fcn.10002fe0
add esp, 0x24
cmp ax, si
jne 0x1000543b
push 0xba0f
push edi
call fcn.10002fe0
add esp, 8
cmp ax, si
jne 0x1000543b
push 0xab0f
push edi
call fcn.10002fe0
add esp, 8
cmp ax, si
jne 0x1000543b
mov eax, 0xca41
cmp word [ebp + 0x14], ax
jne 0x10005445
push 0xa30f
push edi
call fcn.10002fe0
add esp, 8
cmp ax, si
je 0x10005445
mov esi, 0xe026
jmp 0x100057e9
xor bl, bl
push edi
call fcn.10001cb0
add esp, 4
cmp ax, si
jne 0x100057e4
mov eax, dword [0x1003b818]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1003b820]
mov dword [ebp - 0x28], eax
mov eax, dword [0x1003b824]
movq xmm0, qword [ebp - 0x2c]
push 0
mov dword [ebp - 0x24], eax
mov dword [0x1003b857], eax
lea eax, [ebp - 0x3c]
push eax
push 4
lea eax, [ebp - 0x2c]
movq qword [0x1003b84f], xmm0
push eax
push 0xc
push 0x402c0
push edi
call fcn.100026c0
add esp, 0x1c
cmp ax, 4
jne 0x1000553c
mov eax, dword [ebp - 0x3c]
push 0x1003b7f4
push 0x1003b81c
push 0x1003b820
push 0x1003b818
push 0x1003b7e4
mov dword [0x1003b81c], eax
mov dword [0x1003b85b], eax
call fcn.10001560
mov eax, dword [0x1003b7f4]
lea ecx, [ebp - 0x3c]
push 0
push ecx
push 8
mov dword [ebp - 0x2c], eax
lea ecx, [ebp - 0x2b]
push ecx
movzx eax, al
push 3
or eax, 0x80200
push eax
push edi
call fcn.100026c0
movups xmm0, xmmword [0x1003b7f4]
add esp, 0x30
movups xmmword [0x1003b863], xmm0
cmp ax, 8
jne 0x10005525
lea eax, [ebp - 0x3c]
push 0x1003b7f8
push eax
call fcn.10001bb0
add esp, 8
test al, al
je 0x10005558
mov al, bl
add bl, 1
cmp al, 5
jb 0x10005447
mov esi, 0xe023
jmp 0x100057e9
mov al, bl
mov esi, 0xe026
add bl, 1
cmp al, 5
jae 0x100057e9
mov esi, 0x9000
jmp 0x10005447
push 1
lea eax, [ebp - 0x3c]
mov byte [ebp - 0x2c], 0xcc
push eax
push 1
push 0
push 0
push 0x102cc
push edi
call fcn.100026c0
mov ebx, dword [ebp + 0xc]
add esp, 0x1c
cmp bl, 9
jbe 0x10005588
mov esi, 0xe027
jmp 0x100057e9
mov eax, dword [0x1003b828]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push 4
push eax
push 0xdb00
push edi
call fcn.10002e50
movzx esi, ax
mov ecx, 0x9000
add esp, 0x10
cmp si, cx
jne 0x100057e9
mov eax, dword [ebp - 0xc]
xor cl, cl
movups xmm0, xmmword [0x1003b804]
mov dword [ebp - 0x2a], eax
mov ax, word [ebp - 8]
mov word [ebp - 0x26], ax
mov al, byte [0x1003b814]
mov byte [ebp - 0x2c], bl
mov byte [ebp - 0x2b], bl
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x14], al
nop
movzx eax, cl
add eax, 0x19
cmp eax, 0x20
jae 0x10005843
inc cl
mov byte [ebp + eax - 0x2c], 0
cmp cl, 7
jb 0x100055e0
push 0x20
lea eax, [ebp - 0x2c]
push eax
push 0xdd00
push edi
call fcn.10002e50
movzx esi, ax
add esp, 0x10
mov eax, 0x9000
cmp si, ax
jne 0x100057e9
xor al, al
movzx ecx, al
cmp ecx, 0x20
jae 0x10005843
add al, 1
mov byte [ebp + ecx - 0x2c], 0
cmp al, 7
jb 0x10005622
movaps xmm0, xmmword [0x100137d0]
lea eax, [ebp - 0x2c]
push 0x20
push eax
push 0xdd01
push edi
mov byte [ebp - 0x25], 3
movups xmmword [ebp - 0x24], xmm0
movq qword [ebp - 0x14], xmm0
call fcn.10002e50
movzx esi, ax
add esp, 0x10
mov eax, 0x9000
cmp si, ax
jne 0x100057e9
mov eax, 0xca41
cmp word [ebp + 0x14], ax
jne 0x100056cd
mov ecx, dword [ebp - 0x64]
movaps xmm0, xmmword [0x100137d0]
movups xmmword [ebp - 0x1c], xmm0
push 0x20
mov eax, dword [ecx]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x2c]
push eax
movups xmmword [ebp - 0x2c], xmm0
push 0xdc00
push edi
mov word [ebp - 0x24], 0xfefe
mov byte [ebp - 0x28], 0xfe
mov byte [ebp - 0x2c], 0xfe
call fcn.10002e50
movzx esi, ax
add esp, 0x10
mov eax, 0x9000
cmp si, ax
jne 0x100057e9
mov eax, dword [0x1003b818]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x28]
push eax
movzx eax, byte [0x1001a7a8]
push 0x100327e0
push eax
push ebx
push 0x1003b818
call fcn.10001be0
movups xmm0, xmmword [ebp - 0x28]
add esp, 0x14
lea edx, [ebp - 0x18]
xor cl, cl
movups xmmword [0x1003b879], xmm0
mov al, cl
lea edx, [edx + 1]
shl al, 4
or al, cl
inc cl
mov byte [edx - 1], al
cmp cl, 0xc
jb 0x10005704
push 0x20
lea eax, [ebp - 0x2c]
push eax
push 0xd800
push edi
call fcn.10002e50
movzx esi, ax
mov ebx, 0x9000
add esp, 0x10
cmp si, bx
jne 0x100057e9
push edi
call fcn.10001cb0
add esp, 4
cmp ax, bx
jne 0x100057e4
push 0
lea eax, [ebp - 0x3c]
push eax
push 2
push 0x1003b818
push 4
push 0x202ff
push edi
call fcn.100026c0
push 0xa280
push edi
call fcn.10002fe0
movzx esi, ax
add esp, 0x24
cmp si, bx
jne 0x100057e9
push 0xbb0f
push edi
call fcn.10002fe0
movzx esi, ax
add esp, 8
cmp si, bx
jne 0x100057e9
push 0xb30f
push edi
call fcn.10002fe0
movzx esi, ax
add esp, 8
cmp si, bx
jne 0x100057e9
push 0xab0f
push edi
call fcn.10002fe0
movzx esi, ax
add esp, 8
cmp si, bx
jne 0x100057e9
push 0xa30f
push edi
call fcn.10002fe0
add esp, 8
movzx esi, ax
jmp 0x100057e9
cmp eax, 1
jne 0x100057e4
cmp byte [ebp - 0x3c], 0xef
mov esi, 0xe026
je 0x100057e9
mov esi, 0xe021
pop ebx
push 0x1f4
lea eax, [ebp - 0x98]
mov dword [ebp - 0x98], 0
push eax
push 1
lea eax, [ebp - 0x64]
mov dword [0x1001a7b0], 0
push eax
push 1
lea eax, [ebp - 0xc]
mov byte [ebp - 0xc], 2
push eax
push edi
call fcn.10002730
push 0
push 1
push 1
push edi
call dword [0x1003c83c]
mov ecx, dword [ebp - 4]
add esp, 0x2c
movzx eax, si
xor ecx, ebp
pop edi
pop esi
call fcn.10008251
mov esp, ebp
pop ebp
ret
call fcn.10008383
int3