Function at 0x748ba0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov dword [ebp - 0x40], ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x74aff0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
push eax
sub esp, 0x1c
mov esi, esp
call fcn.0074af90
mov edx, dword [0xa20c6c]
mov ecx, dword [0xa20c5c]
mov edi, 0x7bf9
sub edi, eax
mov dword [ebp - 0x3c], edi
sub ecx, edi
add ecx, edx
call dword [0xa0535c]
call ecx
mov ebx, eax
lea eax, [esi + 4]
push 0
mov dword [ebp - 0x2c], eax
push eax
call fcn.00773550
add esp, 8
mov dword [ebp - 0x28], esi
mov eax, dword [ebp - 0x40]
mov dword [esi], eax
movzx eax, byte [0xa20a9a]
mov dword [ebp - 0x24], ebx
mov ecx, ebx
xor cl, 0x6b
mov byte [ebp - 0x1d], cl
cmp al, cl
je 0x748cbb
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x44
mov edx, eax
xor dl, 0x83
mov eax, ecx
lock cmpxchg byte [0xa20a9a], dl
je 0x748c53
cmp al, byte [ebp - 0x1d]
jne 0x748c40
jmp 0x748cbb
nop
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x251dbf58
mov dword [ebp - 0x30], ecx
mov edi, eax
xor edi, 0x8d667b72
mov bh, al
xor bh, 0x65
mov bl, al
xor bl, 0x9a
cmp edi, 2
mov esi, 1
cmovge esi, edi
xor ecx, ecx
xor bl, bh
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x30]
add eax, ecx
xor edx, edx
div edi
movzx eax, byte [edx + 0x9a5630]
and al, bl
xor al, bh
xor byte [ecx + 0xa20a90], al
inc ecx
cmp esi, ecx
jne 0x748c90
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0xa20a9a], al
nop
mov eax, dword [ebp - 0x28]
mov dword [eax + 0x1c], 0xa20a90
mov dword [ebp - 0x4c], 0
mov eax, dword [ebp - 0x24]
xor eax, 0x8d667b7f
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x48], eax
mov word [ebp - 0x5c], 0
movzx eax, byte [0xa20a9a]
cmp al, byte [ebp - 0x1d]
je 0x748d77
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x44
mov edx, eax
xor dl, 0x83
nop
mov eax, ecx
lock cmpxchg byte [0xa20a9a], dl
je 0x748d13
cmp al, byte [ebp - 0x1d]
jne 0x748d00
jmp 0x748d77
nop
mov esi, dword [ebp - 0x24]
mov ecx, esi
xor ecx, 0x251dbf58
xor esi, 0x8d667b72
cmp esi, 2
mov edi, 1
cmovge edi, esi
xor ebx, ebx
nop word cs:[eax + eax]
mov eax, ebx
xor eax, ecx
mov edx, ebx
and edx, ecx
lea eax, [eax + edx*2]
xor edx, edx
div esi
movzx eax, byte [ebx + 0xa20a90]
xor al, byte [edx + 0x9a5630]
xor al, byte [ebp - 0x24]
xor al, 0x65
mov byte [ebx + 0xa20a90], al
inc ebx
cmp edi, ebx
jne 0x748d40
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0xa20a9a], al
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x8d667b71
lea eax, [eax + 0xa20a90]
mov dword [ebp - 0x44], eax
movzx eax, byte [0xa20a9a]
cmp al, byte [ebp - 0x1d]
je 0x748e80
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x44
mov edx, eax
xor dl, 0x83
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa20a9a], dl
je 0x748dc6
cmp al, byte [ebp - 0x1d]
jne 0x748db0
jmp 0x748e80
nop
mov ebx, dword [ebp - 0x24]
mov eax, ebx
xor eax, 0x251dbf58
mov dword [ebp - 0x34], eax
mov edi, ebx
xor edi, 0x8d667b72
xor ecx, ecx
cmp edi, 2
mov eax, 1
cmovge eax, edi
mov dword [ebp - 0x38], eax
jl 0x748e46
mov eax, dword [ebp - 0x38]
and eax, 0x7ffffffe
mov dword [ebp - 0x30], eax
xor ecx, ecx
mov esi, dword [ebp - 0x34]
nop
mov eax, esi
xor edx, edx
div edi
movzx eax, byte [ecx + 0xa20a90]
xor al, byte [edx + 0x9a5630]
xor al, bl
xor al, 0x65
mov byte [ecx + 0xa20a90], al
lea eax, [esi + 1]
xor edx, edx
div edi
movzx eax, byte [ecx + 0xa20a91]
xor al, byte [edx + 0x9a5630]
xor al, bl
xor al, 0x65
mov byte [ecx + 0xa20a91], al
add ecx, 2
add esi, 2
cmp dword [ebp - 0x30], ecx
jne 0x748e00
test byte [ebp - 0x38], 1
je 0x748e6e
nop
mov eax, dword [ebp - 0x34]
add eax, ecx
xor edx, edx
div edi
movzx eax, byte [ecx + 0xa20a90]
xor al, byte [edx + 0x9a5630]
xor al, byte [ebp - 0x24]
xor al, 0x65
mov byte [ecx + 0xa20a90], al
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0xa20a9a], al
mov dword [ebp - 0x10], 0
nop
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x5c]
push 0
push eax
push dword [ebp - 0x44]
push 0xa20a90
call fcn.00776c60
add esp, 0x10
nop
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x48], ecx
lea ecx, [ebp - 0x5c]
jbe 0x748eb0
mov ecx, dword [ebp - 0x5c]
lea eax, [ecx + eax*2]
push eax
push ecx
push dword [ebp - 0x2c]
call fcn.007780a0
add esp, 0xc
nop
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x28]
jbe 0x748f1f
nop
mov ecx, dword [ebp - 0x5c]
lea esi, [eax*2 + 2]
mov ebx, dword [ebp - 0x24]
mov edx, ebx
xor edx, 0x8d667487
cmp esi, edx
jbe 0x748f14
nop
mov edx, dword [ecx - 4]
mov esi, ebx
xor esi, 0x72998484
mov edi, esi
xor edi, ecx
and esi, ecx
lea ecx, [edi + esi*2]
sub ecx, edx
mov esi, ebx
xor esi, 0x8d667b58
cmp ecx, esi
jae 0x748f66
add eax, eax
mov esi, ebx
xor esi, 0x8d667b5d
add esi, eax
mov ecx, edx
nop
push esi
push ecx
call fcn.008ea1ad
add esp, 8
nop
mov esi, dword [ebp - 0x24]
xor esi, 0x8d667b60
mov eax, dword [0xa20c60]
mov ecx, dword [0xa20c58]
sub ecx, dword [ebp - 0x3c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa0535c]
push esi
push dword [ebp - 0x2c]
mov esi, dword [ebp - 0x40]
push esi
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [ebp - 0x10], 1
call fcn.008cd651
nop word cs:[eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.00901a00
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0xa20c64]
mov esi, dword [0xa20c50]
mov edi, dword [ebp - 0x3c]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
lea ecx, [ebp - 0x5c]
call esi
mov eax, dword [0xa20c68]
mov esi, dword [0xa20c54]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa0535c]
mov ecx, dword [ebp - 0x2c]
call esi
add esp, 0x10
pop ebp
ret