Function at 0x545100
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x4c
mov dword [ebp - 0x40], ecx
nop
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x5477b0
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.00547760
mov edx, dword [0x850e18]
mov ecx, dword [0x850e00]
mov edi, 0xd54
sub edi, eax
mov dword [ebp - 0x3c], edi
sub ecx, edi
add ecx, edx
call dword [0x834360]
call ecx
mov ebx, eax
xor eax, 0xe128abcc
add eax, esi
push 0
mov dword [ebp - 0x38], eax
push eax
call fcn.0056eeb0
add esp, 8
mov dword [ebp - 0x34], esi
mov eax, dword [ebp - 0x40]
mov dword [esi], eax
mov eax, ebx
xor eax, 0xe128abd4
mov dword [ebp - 0x30], eax
movzx eax, byte [0x850ada]
mov dword [ebp - 0x24], ebx
mov ecx, ebx
xor cl, 2
mov byte [ebp - 0x1d], cl
cmp al, cl
je 0x545255
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0xf
mov edx, eax
xor dl, 0x8f
nop word cs:[eax + eax]
mov eax, ecx
lock cmpxchg byte [0x850ada], dl
je 0x5451d6
cmp al, byte [ebp - 0x1d]
jne 0x5451c0
jmp 0x545255
nop
mov ecx, dword [ebp - 0x24]
mov eax, ecx
xor eax, 0x31db55ae
mov dword [ebp - 0x28], eax
mov esi, ecx
xor esi, 0xe128abcf
mov eax, ecx
xor eax, 0xe128abc2
cmp eax, 2
mov edx, 1
cmovge edx, eax
mov dword [ebp - 0x2c], edx
xor ebx, ebx
mov edi, 0xffffffff
nop dword [eax + eax]
mov eax, ecx
xor eax, ebx
xor eax, 0xce24aa51
mov edx, dword [ebp - 0x28]
and edx, edi
or edx, eax
not edx
lea eax, [eax + edx*2]
xor edx, edx
div esi
not edx
movzx eax, byte [ebx + 0x850ad0]
xor al, byte [esi + edx + 0x7d4e90]
xor al, cl
xor al, 0x74
mov byte [ebx + 0x850ad0], al
inc ebx
dec edi
cmp dword [ebp - 0x2c], ebx
jne 0x545210
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0x850ada], al
nop
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x30]
mov dword [eax + ecx], 0x850ad0
mov eax, dword [ebp - 0x24]
mov edx, eax
xor edx, 0xe128abd8
mov ecx, eax
xor ecx, 0xe128abdc
mov dword [ebp - 0x30], edx
mov dword [ebp + edx - 0x58], 0
xor eax, 0xe128abcf
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp + ecx - 0x58], eax
mov word [ebp - 0x58], 0
movzx eax, byte [0x850ada]
cmp al, byte [ebp - 0x1d]
je 0x54531c
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0xf
mov edx, eax
xor dl, 0x8f
nop
mov eax, ecx
lock cmpxchg byte [0x850ada], dl
je 0x5452c3
cmp al, byte [ebp - 0x1d]
jne 0x5452b0
jmp 0x54531c
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xce24aa51
xor edi, 0xe128abc2
xor ebx, ebx
mov ecx, dword [ebp - 0x28]
nop dword [eax]
lea eax, [ebx + esi]
xor edx, edx
div ecx
not edx
movzx eax, byte [ebx + 0x850ad0]
xor al, byte [ecx + edx + 0x7d4e90]
xor al, byte [ebp - 0x24]
xor al, 0x74
mov byte [ebx + 0x850ad0], al
mov eax, ebx
xor eax, 1
and ebx, 1
lea ebx, [eax + ebx*2]
cmp ebx, edi
jl 0x5452e0
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0x850ada], al
nop
mov eax, dword [ebp - 0x24]
xor eax, 0xe128abc1
lea eax, [eax + 0x850ad0]
mov dword [ebp - 0x34], eax
movzx eax, byte [0x850ada]
cmp al, byte [ebp - 0x1d]
je 0x5453c9
mov eax, dword [ebp - 0x24]
mov ecx, eax
xor cl, 0xf
mov edx, eax
xor dl, 0x8f
nop dword [eax + eax]
mov eax, ecx
lock cmpxchg byte [0x850ada], dl
je 0x545363
cmp al, byte [ebp - 0x1d]
jne 0x545350
jmp 0x5453c9
nop
mov eax, dword [ebp - 0x24]
mov edi, eax
xor edi, 0xce24aa51
xor eax, 0xe128abc2
cmp eax, 2
mov ebx, 1
cmovge ebx, eax
xor esi, esi
nop
mov ecx, dword [ebp - 0x28]
nop word cs:[eax + eax]
lea eax, [edi + esi]
xor edx, edx
div ecx
not edx
movzx eax, byte [esi + 0x850ad0]
xor al, byte [ecx + edx + 0x7d4e90]
xor al, byte [ebp - 0x24]
xor al, 0x74
mov byte [esi + 0x850ad0], al
inc esi
cmp ebx, esi
jne 0x545390
nop
movzx eax, byte [ebp - 0x1d]
xchg byte [0x850ada], al
mov dword [ebp - 0x10], 0
nop
mov dword [ebp - 0x10], 0
lea eax, [ebp - 0x58]
push 0
push eax
push dword [ebp - 0x34]
push 0x850ad0
call fcn.005727e0
add esp, 0x10
nop
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
cmp dword [ebp + eax - 0x58], ecx
lea ecx, [ebp - 0x58]
jbe 0x5453fa
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp + eax - 0x58]
lea eax, [ecx + eax*2]
push eax
push ecx
push dword [ebp - 0x38]
call fcn.00573c90
add esp, 0xc
nop
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp + eax - 0x58]
cmp ecx, dword [ebp - 0x28]
jbe 0x54547b
nop
mov eax, dword [ebp - 0x58]
lea edx, [ecx*2 + 2]
mov edi, dword [ebp - 0x24]
mov esi, edi
xor esi, 0xe128a437
cmp edx, esi
jbe 0x545471
mov edx, edi
xor edx, 0x1ed75434
lea esi, [eax + edx]
mov eax, dword [eax + edx]
sub esi, eax
mov edx, edi
xor edx, 0xe128abe8
cmp esi, edx
jae 0x5454be
add ecx, ecx
mov edx, edi
xor edx, 0x368c527d
mov esi, ecx
xor esi, edx
and ecx, edx
xor edi, 0xe128abed
sub edi, edx
add edi, esi
lea edx, [edi + ecx*2]
push edx
push eax
call fcn.0071996d
add esp, 8
mov esi, dword [ebp - 0x24]
xor esi, 0xe128abd0
mov eax, dword [0x850e1c]
mov ecx, dword [0x850e0c]
sub ecx, dword [ebp - 0x3c]
add ecx, eax
mov dword [ebp - 0x10], 0xffffffff
call dword [0x834360]
push esi
push dword [ebp - 0x38]
push dword [ebp - 0x40]
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.006fce21
nop dword [eax + eax]
push ebp
sub esp, 0x10
add ebp, 0xc
call fcn.007311e0
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
nop
mov eax, dword [0x850e10]
mov esi, dword [0x850e08]
mov edi, dword [ebp - 0x3c]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0x834360]
lea ecx, [ebp - 0x58]
call esi
mov eax, dword [0x850e14]
mov esi, dword [0x850e04]
sub esi, edi
add esi, eax
mov ecx, esi
call dword [0x834360]
mov ecx, dword [ebp - 0x38]
call esi
add esp, 0x10
pop ebp
ret