Function at 0x5772c2
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push bp
lea esp, [esp + 1]
push bp
push word [esp + 1]
lea esp, [esp + 1]
jmp 0x4fee02
lea esp, [esp + 3]
pushfd
push word [esp + 3]
lea esp, [esp + 3]
mov dword [esp], eax
setae al
bswap ax
pushfd
mov word [esp + 1], ax
jmp 0x5772f2
test ecx, ecx
je 0x5773cb
lea edx, [ecx + esi]
push eax
pushal
jmp 0x577397
mov ecx, dword [ebp]
pop ebp
push edx
mov edx, ebp
lea edx, [edx - 0x14]
mov dword [edx], eax
pop edx
jmp 0x57727e
push bx
push word [esp]
lea esp, [esp + 4]
push ebp
mov ebp, esp
sub esp, 0x24
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push esi
lea esi, [eax + ecx]
mov dword [ebp - 0xc], esi
call fcn.0052871b
push ebp
mov ebp, eax
lea ebp, [ebp + 0x80]
jmp 0x57729b
mov ax, 0x6698
mov ah, 0x8f
mov eax, dword [esp]
xchg word [esp], ax
bswap ax
lea eax, reloc.oleaut32.dll_SysFreeString
pop word [esp]
lea esp, [esp + 2]
push ebp
bswap bp
not bp
lea ebp, [ecx - 0xef]
setge al
xchg ebp, eax
mov al, byte [esp]
mov ax, 0x560f
push edi
setle ah
sete al
bswap eax
mov al, byte [esp]
mov al, byte [esp]
setae al
mov al, byte [esp]
mov al, byte [esp]
pop edi
mov bp, 0x61e1
mov ebp, 0x78214278
not al
bswap bp
mov ebp, 0x56c12e3f
bswap eax
mov bp, ax
pushal
mov ebp, dword [esp + 0x20]
lea eax, [ebp*4]
seto ah
mov ax, 0x27c3
lea eax, [ebx + 0x54]
bswap eax
bswap ax
mov eax, dword [esp + 0x24]
lea esp, [esp + 0x28]
lea esp, [esp + 4]
jmp 0x5772b8
setbe dl
mov ah, dh
push si
setno bh
pop bx
xchg bx, ax
xchg dx, si
mov dx, word [esp]
bswap di
mov dword [esp + 0x1c], ebp
pushfd
mov word [esp + 1], sp
jmp 0x577415
and dword [ebp - 4], 0
mov edx, dword [ebp - 4]
jmp 0x5773e7
test edx, edx
jmp 0x577454
sub esp, 0xc
stc
clc
push word [esp + 9]
push word [esp + 0xc]
jmp 0x577556
mov dword [esp], edi
mov word [esp + 1], bx
lea esp, [esp + 3]
mov byte [esp], ah
lea esp, [esp + 1]
popal
lea eax, [eax - 4]
mov dword [eax], edx
pop eax
jmp 0x5773e7
mov dword [esp + 0x1c], ebx
push esp
lea esp, [esp + 0x20]
push edi
mov ebx, dword [edx]
test ebx, ebx
je 0x577584
jmp 0x5774ee
je 0x5773f9
pushal
push dword [esp + 4]
pop word [esp + 0xd]
lea esp, [esp + 2]
jmp 0x577431
mov ecx, dword [edx + 0xc]
add ebx, esi
cmp ecx, dword [eax + 0x50]
jae 0x577530
mov edi, dword [ebx]
add ecx, esi
pushfd
jmp 0x577502
cmp ebx, dword [eax + 0x54]
jb 0x577584
cmp ebx, dword [eax + 0x50]
jb 0x5774cf
jae 0x577584
mov dword [esp], eax
push dword [esp + 2]
mov byte [esp], cl
mov dword [esp + 2], eax
lea esp, [esp + 2]
lea esp, [esp + 2]
mov dword [esp], ecx
push esi
mov byte [esp], dl
jmp 0x5775ca
add edx, 0x14
mov dword [ebp - 4], edx
jmp 0x577735
pop edi
pop ebx
jmp 0x5773f9
mov word [esp + 0xd], cx
xor eax, eax
pushfd
push word [esp]
push dword [esp + 4]
mov word [esp + 6], bp
lea esp, [esp + 8]
lea esp, [esp + 2]
jmp 0x5778a7
mov ebx, dword [edx + 0x10]
test ebx, ebx
je 0x57754f
cmp dword [ebp + 0xc], 0
je 0x577530
jne 0x5774cf
push ecx
pushal
mov edx, dword [esp]
lea ecx, [ecx + esi]
mov eax, 0x2153cf
pushfd
bswap si
xchg dword [esp], ebx
bswap edx
pop esi
mov bl, 0x11
mov dword [esp + 0x18], ebp
pushfd
mov byte [esp + 2], ah
jmp 0x577802
pop word [esp]
lea esp, [esp + 2]
add edi, esi
call dword [0x509050]
mov dword [ebp - 8], eax
test eax, eax
jne 0x577597
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0xc]
call fcn.0052226f
push ecx
mov ecx, eax
lea ecx, [ecx + 0x10]
mov eax, dword [ecx]
pop ecx
push 0
push 0
add ecx, esi
pushal
jmp 0x577612
push word [esp + 0x15]
pop dword [esp + 0x11]
mov byte [esp + 0xe], bl
jmp 0x57767e
add dword [ebp - 4], 0x14
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 4]
jmp 0x577735
mov dword [esp], ecx
call eax
mov dword [ebp - 8], eax
test eax, eax
je 0x577644
jne 0x577597
loop 0x5776b4
salc
mov cl, 0x40
mov dword [esp + ecx*4], reloc.oleaut32.dll_SysFreeString
pop dword [esp + 0x11]
lea esp, [esp + 2]
pop word [esp + 0xf]
mov word [esp + 1], si
lea esp, [esp + 0x12]
jmp 0x577660
inc dword [eax]
push edi
popal
push esi
sub cl, byte [edi + edi*2 + 0x7b613780]
inc ecx
test dword [ebx], edx
adc al, 3
sbb dword [ecx - 0x7ecc6fa8], 0xfce57fbf
xor eax, dword [ecx - reloc.oleaut32.dll_SysFreeString]
invalid
mov ecx, dword [ebp - 0xc]
add ebx, 4
push esi
mov esi, ebx
mov eax, dword [esi]
pop esi
add esi, 4
lea edi, [eax + ecx]
test eax, eax
jne 0x577768
mov esi, ecx
jmp 0x577644
mov esi, dword [ebp - 0xc]
jmp 0x577644
test edx, edx
jne 0x57743b
je 0x57754f
pop es
xchg dword [edi], edx
jb 0x5776c9
push cs
invalid
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x10]
add esi, dword [ebp - 0xc]
cmp dword [esi], 0
je 0x57772d
cmp dword [ebx], 0
je 0x57772d
call fcn.00522396
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0x10]
push ecx
push 0x40
push 4
push esi
call eax
test eax, eax
je 0x577700
push edi
mov edi, ebx
mov eax, dword [edi]
pop edi
test eax, eax
jns 0x5777b9
call fcn.00522361
in eax, 0x8b
dec ecx
and byte [ecx + 0xffffe0], al
add byte [eax - 1], dl
jne 0x577794
invalid
call ecx
jmp 0x5777d5
call 0x522480
mov eax, dword [eax + 0x20]
add edi, 2
push edi
jmp 0x5778c4
mov dword [esi], eax
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x10]
call fcn.00522462
push 4
push esi
call dword [eax + 0x18]
jmp 0x577700
mov byte [esp], al
mov byte [esp + 2], dl
pop word [esp]
mov byte [esp], bl
lea esp, [esp + 2]
popal
lea ecx, [ecx - 8]
mov eax, dword [ecx]
pop ecx
cmp eax, dword [ebp + 8]
jne 0x577755
mov byte [ebp - 0x16], 0x42
mov byte [ebp - 0x17], 0x56
mov byte [ebp - 0x18], 0x56
mov byte [ebp - 0x19], 0x5e
mov byte [ebp - 0x1a], 0x14
mov byte [ebp - 0x1b], 0x5d
mov byte [ebp - 0x1c], 0x4f
mov byte [ebp - 0x1d], 0x61
mov byte [ebp - 0x1e], 0x80
mov byte [ebp - 0x1f], 0x56
mov byte [ebp - 0x20], 0x5d
mov byte [ebp - 0x21], 0x54
mov byte [ebp - 0x22], 0x50
mov byte [ebp - 0x23], 0x5d
mov byte [ebp - 0x24], 0x77
xor esi, esi
lea eax, [ebp + esi - 0x24]
mov cl, byte [eax]
sub cl, 3
xor cl, 0x3f
inc esi
cmp esi, 0xf
mov byte [eax], cl
jl 0x577862
lea eax, [ebp - 0x24]
push eax
call dword [0x509050]
mov dword [ebp - 8], eax
jmp 0x577755
lea esp, [esp + 0x10]
inc eax
pop esi
leave
ret
push dword [ebp - 8]
call eax
jmp 0x5777d5