Function at 0x4eb330
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x6480b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x88], 0
xorps xmm0, xmm0
mov dword [ebp - 0xec], edi
movups xmmword [ebp - 0xa0], xmm0
xor ecx, ecx
movq qword [ebp - 0x90], xmm0
mov eax, dword [edi + 0x8fc]
mov dword [ebp - 0xf8], eax
mov eax, dword [edi + 0x904]
mov dword [edi + 0x8fc], eax
nop dword [eax]
nop dword [eax + eax]
mov al, byte [ecx + str.IMG2]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0xa1], al
test al, al
jne 0x4eb390
push 0xa
lea eax, [ebp - 0xe4]
push eax
push 0x5f6fc8
call fcn.005d1ea6
shl eax, 8
add esp, 0xc
movzx esi, ax
mov eax, dword [ebp - 0xe4]
cmp word [eax], 0x2e
jne 0x4eb3e9
push 0xa
lea ecx, [ebp - 0xe4]
add eax, 2
push ecx
push eax
call fcn.005d1ea6
add esp, 0xc
add esi, eax
mov eax, dword [ebp - 0xe4]
shl esi, 4
cmp word [eax], 0
je 0x4eb406
push 0x10
lea ecx, [ebp - 0xe4]
push ecx
push eax
call fcn.005d1ea6
add esp, 0xc
add esi, eax
test dword [edi + 0x298], 0x1000
mov eax, dword [0x64f688]
mov ecx, dword [0x64f684]
mov dword [ebp - 0x94], eax
mov dword [edi + 0x6ac], eax
mov eax, dword [edi + 0x29c]
mov word [ebp - 0x9a], si
mov dword [ebp - 0x98], ecx
mov dword [edi + 0x6a8], ecx
mov dword [ebp - 0x90], eax
je 0x4eb451
and eax, 0xfffffff7
mov dword [ebp - 0x90], eax
mov dword [edi + 0x6bc], 0xd
cmp dword [0x64f374], 0
mov dword [ebp - 0x8c], 0xd
je 0x4eb4da
mov eax, dword [0x64f5d4]
cmp eax, 0x116
jae 0x4eb481
mov eax, 0x25000
jmp 0x4eb4df
cmp eax, 0x11e
jae 0x4eb48f
mov eax, 0x27800
jmp 0x4eb4df
cmp eax, 0x12c
jae 0x4eb49d
mov eax, 0x28600
jmp 0x4eb4df
cmp eax, 0x133
jae 0x4eb4ab
mov eax, 0x30000
jmp 0x4eb4df
cmp eax, 0x146
jae 0x4eb4b9
mov eax, 0x30700
jmp 0x4eb4df
cmp eax, 0x149
jae 0x4eb4c7
mov eax, 0x32600
jmp 0x4eb4df
cmp eax, 0x14c
sbb eax, eax
and eax, 0xfffff700
add eax, 0x33200
jmp 0x4eb4df
mov eax, 0x33200
mov ecx, edi
mov dword [ebp - 0x88], eax
mov dword [edi + 0x2a0], eax
call fcn.004cdde0
mov ecx, edi
mov ebx, eax
call fcn.004cde90
cmp eax, 0x28
jae 0x4eb50a
mov esi, 0x3f
jmp 0x4ebbab
push 0x1c
lea eax, [ebp - 0xa0]
mov dword [ebx], 0
push eax
lea esi, [ebx + 0xc]
mov dword [ebx + 4], 0x1c
push esi
call fcn.005c9900
push 0x1c
push esi
call fcn.0052b640
mov ecx, dword [ebx + 4]
add esp, 0x14
add ecx, dword [ebx]
xor ecx, eax
mov dword [ebx + 8], ecx
mov ecx, edi
push 0x28
call fcn.004cde30
mov esi, eax
test esi, esi
jne 0x4ebbab
push 0x90
call fcn.00479f2b
mov ebx, eax
add esp, 4
mov dword [ebp - 0xe4], ebx
test ebx, ebx
je 0x4eb683
push 0x90
push esi
push ebx
call fcn.005c9220
add esp, 0xc
push 0x48
push ebx
push str.USERKEY
call dword [0x648e28]
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4eb590
mov edi, dword [ebp - 0xe4]
sub ecx, edx
sar ecx, 1
mov ebx, 0x5aa5
mov dword [ebp - 0xf4], ecx
mov ecx, 2
mov dword [ebp - 0xe8], ecx
nop dword [eax + eax]
movzx eax, word [edi]
mov edx, edi
test ax, ax
je 0x4eb5ec
mov ecx, eax
nop dword [eax]
xor ecx, ebx
lea edx, [edx + 2]
mov word [edx - 2], cx
movzx eax, word [edx]
movzx ebx, cx
mov ecx, eax
test ax, ax
jne 0x4eb5d0
mov ecx, dword [ebp - 0xe8]
sub ecx, 1
mov dword [ebp - 0xe8], ecx
jne 0x4eb5c0
mov ebx, dword [ebp - 0xf4]
mov edi, dword [ebp - 0xec]
test ebx, ebx
je 0x4eb66b
mov ecx, edi
call fcn.004cdde0
mov esi, eax
mov ecx, edi
mov dword [ebp - 0xec], esi
call fcn.004cde90
lea ecx, [ebx + 0xc]
cmp ecx, eax
jbe 0x4eb62b
mov esi, 0x3f
jmp 0x4eb66b
push ebx
push dword [ebp - 0xe4]
mov dword [esi], 8
mov dword [esi + 4], ebx
add esi, 0xc
push esi
call fcn.005c9900
push ebx
push esi
call fcn.0052b640
mov edx, dword [ebp - 0xec]
add esp, 0x14
mov ecx, dword [edx]
add ecx, dword [edx + 4]
xor ecx, eax
lea eax, [ebx + 0xc]
mov dword [edx + 8], ecx
mov ecx, edi
push eax
call fcn.004cde30
mov esi, eax
push 2
push dword [ebp - 0xe4]
call fcn.0058bb51
add esp, 8
test esi, esi
jne 0x4ebbab
lea eax, [edi + 0x2a8]
test eax, eax
je 0x4eb749
push 0
push eax
push 0xfde9
call fcn.0050f680
add esp, 0xc
mov dword [ebp - 0xe8], eax
test eax, eax
je 0x4eb749
mov ebx, eax
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x4eb6b4
sub ebx, ecx
mov eax, 0x1ff
cmp ebx, eax
mov ecx, edi
cmova ebx, eax
call fcn.004cdde0
mov esi, eax
mov ecx, edi
mov dword [ebp - 0xec], esi
call fcn.004cde90
lea ecx, [ebx + 0xc]
cmp ecx, eax
jbe 0x4eb6f9
push dword [ebp - 0xe8]
mov esi, 0x3f
call fcn.0058bb5f
add esp, 4
jmp 0x4eb74e
push ebx
push dword [ebp - 0xe8]
mov dword [esi], 2
mov dword [esi + 4], ebx
add esi, 0xc
push esi
call fcn.005c9900
push ebx
push esi
call fcn.0052b640
mov edx, dword [ebp - 0xec]
add esp, 0x14
mov ecx, dword [edx]
add ecx, dword [edx + 4]
xor ecx, eax
lea eax, [ebx + 0xc]
mov dword [edx + 8], ecx
mov ecx, edi
push eax
call fcn.004cde30
push dword [ebp - 0xe8]
mov esi, eax
call fcn.0058bb5f
add esp, 4
jmp 0x4eb74e
mov esi, 2
test esi, esi
jne 0x4ebbab
mov eax, dword [edi + 0x290]
mov ecx, edi
movups xmm0, xmmword [edi + 0x26c]
mov dword [ebp - 0x9c], eax
mov ax, word [edi + 0x28c]
mov word [ebp - 0x98], ax
xor eax, eax
mov word [ebp - 0x96], ax
movups xmmword [ebp - 0x94], xmm0
call fcn.004cdde0
mov ecx, edi
mov esi, eax
call fcn.004cde90
cmp eax, 0x24
jb 0x4eb500
movups xmm0, xmmword [ebp - 0x9c]
lea eax, [esi + 0xc]
mov dword [esi], 6
mov dword [esi + 4], 0x18
movups xmmword [eax], xmm0
push 0x18
movq xmm0, qword [ebp - 0x8c]
push eax
movq qword [eax + 0x10], xmm0
call fcn.0052b640
mov ecx, dword [esi]
add esp, 8
add ecx, dword [esi + 4]
xor ecx, eax
mov dword [esi + 8], ecx
mov ecx, edi
push 0x24
call fcn.004cde30
mov esi, eax
test esi, esi
jne 0x4ebbab
mov esi, dword [edi + 0x298]
test esi, 0x80000
je 0x4eb824
mov ecx, dword [edi + 0x7dc]
test ecx, ecx
je 0x4eb824
nop word [eax + eax]
mov eax, dword [ecx + 0x7dc]
test eax, eax
je 0x4eb81e
mov ecx, eax
jmp 0x4eb810
mov esi, dword [ecx + 0x6b8]
mov ecx, edi
call fcn.004cdde0
mov ecx, edi
mov ebx, eax
call fcn.004cde90
cmp eax, 0x10
jb 0x4eb500
lea eax, [ebx + 0xc]
mov dword [ebx], 5
push 4
mov dword [ebx + 4], 4
push eax
mov dword [eax], esi
call fcn.0052b640
mov ecx, dword [ebx]
add esp, 8
add ecx, dword [ebx + 4]
xor ecx, eax
mov dword [ebx + 8], ecx
mov ecx, edi
push 0x10
call fcn.004cde30
mov esi, eax
test esi, esi
jne 0x4ebbab
mov eax, dword [edi + 0x298]
and eax, 0x8001
cmp eax, 0x8001
jne 0x4eb93f
mov ecx, dword [edi + 0x7dc]
mov eax, dword [ecx + 0x6a8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ecx + 0x6ac]
mov ecx, edi
mov dword [ebp - 0xec], eax
call fcn.004cdde0
mov ecx, edi
mov esi, eax
call fcn.004cde90
cmp eax, 0x14
jb 0x4eb500
movq xmm0, qword [ebp - 0xf0]
lea eax, [esi + 0xc]
push 8
mov dword [esi], 7
mov dword [esi + 4], 8
push eax
movq qword [eax], xmm0
call fcn.0052b640
mov ecx, dword [esi + 4]
add esp, 8
add ecx, dword [esi]
xor ecx, eax
mov dword [esi + 8], ecx
mov ecx, edi
push 0x14
call fcn.004cde30
mov esi, eax
test esi, esi
jne 0x4ebbab
cmp dword [0x64f374], eax
je 0x4eb91c
cmp dword [0x64f5d4], 0x116
jb 0x4eb93f
mov eax, dword [edi + 0x7dc]
mov ecx, edi
push 1
push 0x104
push dword [eax + 0x24]
push 9
call fcn.004eb2a0
mov esi, eax
test esi, esi
jne 0x4ebbab
mov ecx, edi
call fcn.004cdde0
mov ecx, edi
mov ebx, eax
call fcn.004cde90
cmp eax, 0x80
jb 0x4eb500
push 0x74
lea esi, [ebx + 0xc]
mov dword [ebx], 3
push 0x64f6a4
push esi
mov dword [ebx + 4], 0x74
call fcn.005c9900
push 0x74
push esi
call fcn.0052b640
mov ecx, dword [ebx]
add esp, 0x14
add ecx, dword [ebx + 4]
xor ecx, eax
mov dword [ebx + 8], ecx
mov ecx, edi
push 0x80
call fcn.004cde30
mov esi, eax
test esi, esi
jne 0x4ebbab
cmp dword [0x64f374], eax
je 0x4eb9ba
cmp dword [0x64f5d4], 0x116
jb 0x4ebb1c
test dword [edi + 0x298], 0x80000
je 0x4eba36
mov ecx, dword [edi + 0x7dc]
push 0xc
push edi
call fcn.004ea030
mov esi, eax
test esi, esi
jne 0x4ebbab
mov ecx, dword [edi + 0x7dc]
push 0xa
push edi
call fcn.004ea030
mov esi, eax
test esi, esi
jne 0x4ebbab
cmp dword [0x64f37c], eax
je 0x4eba16
mov ecx, dword [edi + 0x7dc]
push 0xb
push edi
call fcn.004ea030
mov esi, eax
test esi, esi
jne 0x4ebbab
cmp dword [0x64f380], 0
je 0x4ebb1c
mov ecx, dword [edi + 0x7dc]
push 0xd
push edi
call fcn.004ea030
jmp 0x4ebb12
push 0x40
xor esi, esi
lea eax, [ebp - 0xe0]
push esi
push eax
call fcn.005c9220
mov ecx, dword [edi + 0x780]
add esp, 0xc
test ecx, ecx
je 0x4eba9d
push esi
push 0x40
lea eax, [ebp - 0x84]
push eax
call fcn.004f9de0
push eax
call fcn.00485a90
push 0xffffffffffffffff
lea eax, [ebp - 0x84]
push eax
push 0x40
lea eax, [ebp - 0xe0]
push eax
push dword [0x644da8]
call fcn.004fbde0
add esp, 0x24
lea eax, [ebp - 0xe0]
mov ecx, edi
push 0xc
push 0x40
push eax
call fcn.004eb140
mov esi, eax
test esi, esi
jne 0x4ebbab
mov eax, dword [0x651714]
test eax, eax
je 0x4ebaf2
push esi
push eax
push 0xfde9
call fcn.0050f680
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4ebacb
lea esi, [eax + 2]
jmp 0x4ebbab
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ebad0
sub ecx, edx
push 0xa
lea eax, [ecx + 2]
mov ecx, edi
push eax
push ebx
call fcn.004eb140
push ebx
mov esi, eax
call fcn.0058bb5f
add esp, 4
test esi, esi
jne 0x4ebbab
mov ecx, edi
call fcn.004ebe60
mov esi, eax
test esi, esi
jne 0x4ebbab
mov ecx, edi
call fcn.004ebbd0
mov esi, eax
test esi, esi
jne 0x4ebbab
test dword [edi + 0x298], 0x80000
je 0x4ebb36
mov ecx, dword [edi + 0x7dc]
push edi
call fcn.004988e0
jmp 0x4ebb3d
mov ecx, edi
call fcn.00498700
mov esi, eax
test esi, esi
jne 0x4ebbab
mov ecx, edi
call fcn.004ec020
mov esi, eax
test esi, esi
jne 0x4ebbab
mov ecx, edi
call fcn.004cdde0
mov ecx, edi
mov esi, eax
call fcn.004cde90
cmp eax, 0xc
jb 0x4eb500
lea eax, [esi + 0xc]
mov dword [esi], 0xffffffff
push 0
push eax
mov dword [esi + 4], 0
call fcn.0052b640
mov ecx, dword [esi + 4]
add esp, 8
add ecx, dword [esi]
xor ecx, eax
mov dword [esi + 8], ecx
mov ecx, edi
push 0xc
call fcn.004cde30
mov esi, eax
test esi, esi
jne 0x4ebbab
push 0x1000
mov ecx, edi
call fcn.004c36d0
mov esi, eax
mov eax, dword [ebp - 0xf8]
mov ecx, dword [ebp - 4]
mov dword [edi + 0x8fc], eax
xor ecx, ebp
pop edi
mov eax, esi
pop esi
pop ebx
call fcn.0058bb64
mov esp, ebp
pop ebp
ret