Function at 0x756d70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov dword [ebp - 0x44], ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x759520
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
push eax
sub esp, 0x1c
mov esi, esp
mov dword [ebp - 0x1c], esp
call fcn.007594c0
mov edx, dword [0xa53dcc]
mov ecx, dword [0xa53dbc]
mov edi, 0xb237
sub edi, eax
mov dword [ebp - 0x40], edi
sub ecx, edi
add ecx, edx
call dword [0xa37360]
call ecx
mov ebx, eax
xor eax, 0x4aedf6eb
add eax, esi
push 0
mov dword [ebp - 0x38], eax
push eax
call fcn.00782a30
add esp, 8
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x44]
mov dword [esi], eax
mov eax, ebx
xor eax, 0x4aedf6f3
mov dword [ebp - 0x30], eax
movzx eax, byte [0xa53b0a]
mov dword [ebp - 0x24], ebx
mov ecx, ebx
xor cl, 0x90
mov byte [ebp - 0x1d], cl
cmp al, cl
je 0x756eab
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x3e
mov edx, eax
xor dl, 0x99
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa53b0a], dl
je 0x756e43
cmp al, byte [ebp - 0x1d]
jne 0x756e30
jmp 0x756eab
nop
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x2932adc6
mov dword [ebp - 0x28], ecx
mov esi, eax
xor esi, 0x4aedf6e5
mov bh, al
xor bh, 0xf3
mov bl, al
xor bl, 0xc
cmp esi, 2
mov edi, 1
cmovge edi, esi
xor ecx, ecx
xor bl, bh
nop word cs:[eax + eax]
nop
mov eax, dword [ebp - 0x28]
add eax, ecx
xor edx, edx
div esi
movzx eax, byte [edx + 0x9d8a20]
and al, bl
xor al, bh
add byte [ecx + 0xa53b00], al
inc ecx
cmp edi, ecx
jne 0x756e80
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0xa53b0a], al
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0xa53b00
mov eax, dword [ebp - 0x24]
mov edx, eax
xor edx, 0x4aedf6ff
mov ecx, eax
xor ecx, 0x4aedf6fb
mov dword [ebp - 0x48], edx
mov dword [ebp + edx - 0x60], 0
xor eax, 0x4aedf6e8
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp + ecx - 0x60], eax
mov word [ebp - 0x60], 0
movzx eax, byte [0xa53b0a]
cmp al, byte [ebp - 0x1d]
je 0x756fd7
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x3e
mov edx, eax
xor dl, 0x99
nop dword [eax]
nop
mov dword [0xa53df4], 0x25432241
mov eax, ecx
lock cmpxchg byte [0xa53b0a], dl
je 0x756f31
cmp al, byte [ebp - 0x1d]
jne 0x756f10
jmp 0x756fd7
nop
mov ebx, dword [ebp - 0x24]
mov eax, ebx
xor eax, 0x2932adc6
mov dword [ebp - 0x3c], eax
mov ecx, ebx
xor ecx, 0x4aedf6e5
xor edi, edi
cmp ecx, 2
mov eax, 1
cmovge eax, ecx
mov dword [ebp - 0x2c], eax
jl 0x756faa
mov eax, dword [ebp - 0x2c]
and eax, 0x7ffffffe
mov dword [ebp - 0x28], eax
xor edi, edi
mov esi, dword [ebp - 0x3c]
nop dword [eax]
mov eax, esi
xor edx, edx
div ecx
movzx eax, byte [edx + 0x9d8a20]
xor al, bl
xor al, 0xf3
add byte [edi + 0xa53b00], al
lea eax, [esi + 1]
xor edx, edx
div ecx
movzx eax, byte [edx + 0x9d8a20]
xor al, bl
xor al, 0xf3
add byte [edi + 0xa53b01], al
add edi, 2
add esi, 2
cmp dword [ebp - 0x28], edi
jne 0x756f70
test byte [ebp - 0x2c], 1
je 0x756fcc
nop
mov eax, dword [ebp - 0x3c]
add eax, edi
xor edx, edx
div ecx
movzx eax, byte [edx + 0x9d8a20]
xor al, byte [ebp - 0x24]
xor al, 0xf3
add byte [edi + 0xa53b00], al
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0xa53b0a], al
nop
mov eax, dword [ebp - 0x24]
xor eax, 0x4aedf6e6
lea eax, [eax + 0xa53b00]
mov dword [ebp - 0x2c], eax
movzx eax, byte [0xa53b0a]
cmp al, byte [ebp - 0x1d]
je 0x757092
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0x3e
mov edx, eax
xor dl, 0x99
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0xa53b0a], dl
je 0x757023
cmp al, byte [ebp - 0x1d]
jne 0x757010
jmp 0x757092
nop
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor ecx, 0x2932adc6
mov dword [ebp - 0x28], ecx
mov edi, eax
xor edi, 0x4aedf6e5
mov bh, al
xor bh, 0xf3
mov bl, al
xor bl, 0xc
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 - 0x28]
add eax, ecx
xor edx, edx
div edi
movzx eax, byte [edx + 0x9d8a20]
and al, bl
xor al, bh
add byte [ecx + 0xa53b00], al
inc ecx
cmp esi, ecx
jne 0x757060
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0xa53b0a], al
mov dword [ebp - 0x10], 0
nop
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x60]
push 0
push eax
push dword [ebp - 0x2c]
push 0xa53b00
call fcn.00786360
add esp, 0x10
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
cmp dword [ebp + eax - 0x60], ecx
lea ecx, [ebp - 0x60]
jbe 0x7570c3
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax - 0x60]
lea eax, [ecx + eax*2]
push eax
push ecx
push dword [ebp - 0x38]
call fcn.00787810
add esp, 0xc
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax - 0x60]
cmp ecx, dword [ebp - 0x30]
jbe 0x75713a
nop
mov eax, dword [ebp - 0x60]
lea edx, [ecx*2 + 2]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0x4aedf910
cmp edx, esi
jbe 0x757130
mov edx, edi
xor edx, 0xb5120913
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0x4aedf6cf
cmp esi, edx
jae 0x75717d
add ecx, ecx
mov edx, edi
xor edx, 0x4aedf6ca
mov esi, ecx
xor esi, edx
and edx, ecx
lea edx, [esi + edx*2]
push edx
push eax
call fcn.0091d82d
add esp, 8
mov esi, dword [ebp - 0x24]
xor esi, 0x4aedf6f7
mov eax, dword [0xa53dc0]
mov ecx, dword [0xa53db8]
sub ecx, dword [ebp - 0x40]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0xa37360]
push esi
push dword [ebp - 0x38]
push dword [ebp - 0x44]
call ecx
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
nop
mov dword [ebp - 0x10], 1
call fcn.00900ce1
nop word [eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.009350a0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0xa53dc4]
mov esi, dword [0xa53db4]
mov edi, dword [ebp - 0x40]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa37360]
lea ecx, [ebp - 0x60]
call esi
mov eax, dword [0xa53dc8]
mov esi, dword [0xa53db0]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0xa37360]
mov ecx, dword [ebp - 0x38]
call esi
add esp, 0x10
pop ebp
ret