Function at 0x573208
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x13
push 0
push 0
dec ecx
jne 0x573210
push ebx
push esi
push edi
mov edi, eax
xor eax, eax
push ebp
push 0x573c1b
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [0x83a4b8]
mov edx, dword [edx + 0xd4]
lea eax, [ebp - 4]
mov ecx, 0x573c34
call fcn.0040545c
mov eax, dword [ebp - 4]
call fcn.0040be8c
test al, al
je 0x573be3
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
call fcn.0049c8b4
xor edx, edx
push ebp
push 0x573bdc
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x5732de
inc eax
mov dword [ebp - 0x54], eax
xor esi, esi
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov edx, esi
call fcn.004212e4
mov ebx, eax
cmp byte [ebx + 0x15f9], 0
jne 0x5732d8
mov eax, dword [0x83936c]
cmp ebx, dword [eax]
je 0x5732d8
mov eax, dword [0x839124]
cmp ebx, dword [eax]
je 0x5732d8
mov eax, dword [0x839fb4]
cmp ebx, dword [eax]
je 0x5732d8
mov eax, dword [0x839354]
cmp ebx, dword [eax]
je 0x5732d8
mov byte [ebx + 0x15c4], 0xff
inc esi
dec dword [ebp - 0x54]
jne 0x57328e
mov dl, 1
mov eax, dword [0x41ed6c]
call fcn.004041c0
mov dword [ebp - 0x40], eax
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
call dword [ecx + 0x68]
mov edx, dword [ebp - 0x40]
mov eax, edi
call fcn.00574514
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x573b2b
inc eax
mov dword [ebp - 0x54], eax
xor esi, esi
lea ecx, [ebp - 0x58]
mov edx, esi
mov eax, dword [ebp - 0x40]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 8]
call fcn.0040b510
cmp dword [ebp - 8], 0
je 0x573b21
mov eax, dword [ebp - 8]
cmp byte [eax], 0x3b
je 0x573b21
push 1
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x5c]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x64]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x64]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x68]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x6c]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x6c]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x70]
lea eax, [ebp - 8]
call fcn.004051d8
cmp dword [ebp - 0x1c], 0
je 0x573432
mov eax, dword [ebp - 0x1c]
cmp byte [eax], 0x22
jne 0x573432
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x74]
push eax
mov ecx, 0x573c4c
mov edx, 0x573c4c
mov eax, dword [ebp - 0x1c]
call fcn.004916b0
push 1
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x78]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x7c]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x7c]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x80]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x80]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x84]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x84]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x88]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x30]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x88]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x8c]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x34]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 8]
call fcn.004051d8
push 1
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 0x60], 0x20
mov byte [ebp - 0x5f], 9
lea ecx, [ebp - 0x60]
lea edx, [ebp - 0x38]
mov eax, dword [ebp - 8]
call fcn.0049136c
mov edx, dword [ebp - 0x90]
lea eax, [ebp - 8]
call fcn.004051d8
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.0040ba78
mov dword [ebp - 0x48], eax
xor edx, edx
mov eax, dword [ebp - 0x18]
call fcn.0040ba78
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x4d], 1
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov edi, dword [eax + 8]
dec edi
test edi, edi
jl 0x573853
inc edi
mov dword [ebp - 0x44], 0
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov edx, dword [ebp - 0x44]
call fcn.004212e4
mov ebx, eax
cmp byte [ebx + 0x15c4], 0
jge 0x573849
mov eax, dword [ebx + 0x14]
mov edx, dword [ebp - 0x10]
call fcn.0040b368
test eax, eax
jne 0x573849
mov eax, dword [ebx + 0x1c]
cmp eax, dword [ebp - 0x48]
jne 0x573849
mov eax, dword [ebx + 0x20]
cmp eax, dword [ebp - 0x4c]
jne 0x573849
mov byte [ebp - 0x4d], 0
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov edx, dword [ebp - 0xc]
call fcn.00405194
lea eax, [ebx + 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.00405194
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0040ba78
mov byte [ebx + 0x15c4], al
xor edx, edx
mov eax, dword [ebp - 0x24]
call fcn.0040ba78
mov word [ebx + 0xda0], ax
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0040ba78
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], eax
xor edx, edx
mov eax, dword [ebp - 0x38]
call fcn.0040ba78
imul eax, eax, 0x3e8
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], eax
mov ecx, 6
mov edx, 0x573c58
mov eax, dword [ebp - 0x1c]
call fcn.00491970
test al, al
je 0x5736ab
mov eax, dword [ebp - 0x1c]
call fcn.00405410
mov edx, dword [ebp - 0x1c]
cmp byte [edx + eax - 1], 0x3e
jne 0x5736ab
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
call fcn.004051d8
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x94]
push eax
mov ecx, 0x573c68
mov edx, 0x573c74
mov eax, dword [ebp - 0x3c]
call fcn.004916b0
mov edx, dword [ebp - 0x94]
lea eax, [ebp - 0x3c]
call fcn.004051d8
mov eax, dword [ebp - 0x1c]
call fcn.0077cfd8
mov edx, eax
add edx, 0xfffffc18
sub edx, 0x1f4
jae 0x5736e6
mov edi, eax
sub edi, 0x3e8
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], edi
lea eax, [ebx + 0x18]
mov edx, dword [0x83a4b8]
mov edx, dword [edx + edi*4 + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.00405194
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040ba78
test eax, eax
setne al
mov byte [ebx + 0x1615], al
xor edx, edx
mov eax, dword [ebp - 0x2c]
call fcn.0040ba78
test eax, eax
je 0x573712
cmp dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], 0
ja 0x573716
xor eax, eax
jmp 0x573718
mov al, 1
mov byte [ebx + 0x1634], al
xor edx, edx
mov eax, dword [ebp - 0x34]
call fcn.0040ba78
test eax, eax
setne al
mov byte [ebx + 0x15dc], al
mov ax, word [ebx + 0xda0]
mov edx, eax
add edx, 0xffffffca
sub dx, 0x16
jb 0x57375d
add edx, 0xfffffff2
sub dx, 0xa
jb 0x57375d
add edx, 0xffffff91
sub dx, 0xf
jb 0x57375d
sub ax, 0xf5
jne 0x573764
mov byte [ebx + 0x1605], 0
mov ax, word [ebx + 0xda0]
mov edx, eax
add edx, 0xffffffe8
cmp dx, 0x4f
ja 0x573780
and edx, 0x7f
bt dword [0x573c78], edx
jb 0x573840
mov edx, eax
add edx, 0xffffffca
sub dx, 0x16
jb 0x573840
add edx, 0xfffffff2
sub dx, 0xa
jb 0x573840
mov edx, eax
add edx, 0xffffff36
sub dx, 5
jb 0x573840
sub dx, 2
je 0x573840
add edx, 0xfffffffe
sub dx, 0xf
jb 0x573840
mov edx, eax
add edx, 0xffffff1e
sub dx, 0xa
jb 0x573840
add edx, 0xfffffff8
sub dx, 2
jb 0x573840
add eax, 0xffffff0a
sub ax, 6
jb 0x573840
mov di, word [ebx + 0xda0]
cmp di, 0xfd
jb 0x5737fe
cmp di, 0x101
jbe 0x573840
cmp word [ebx + 0xda0], 0x103
jb 0x573814
cmp word [ebx + 0xda0], 0x106
jbe 0x573840
cmp word [ebx + 0xda0], 0x109
jb 0x57382a
cmp word [ebx + 0xda0], 0x10c
jbe 0x573840
cmp word [ebx + 0xda0], 0x10f
jb 0x573853
cmp word [ebx + 0xda0], 0x110
ja 0x573853
mov byte [ebx + 0x1604], 0
jmp 0x573853
inc dword [ebp - 0x44]
dec edi
jne 0x57359a
cmp byte [ebp - 0x4d], 0
je 0x573b21
mov dl, 1
mov eax, dword [0x686f8c]
call fcn.0068d208
mov ebx, eax
lea eax, [ebx + 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00405194
mov edx, dword [ebx + 0x14]
mov eax, dword [0x8391d8]
mov eax, dword [eax]
call fcn.0076be5c
mov edi, eax
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], edi
test edi, edi
je 0x573b1a
lea eax, reloc.kernel32.dll_DeleteCriticalSection
mov edx, dword [ebp - 0xc]
call fcn.00405194
mov eax, dword [ebp - 0x48]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebx + 0x20], eax
lea eax, [ebx + 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.00405194
xor edx, edx
mov eax, dword [ebp - 0x20]
call fcn.0040ba78
mov byte [ebx + 0x15c4], al
xor edx, edx
mov eax, dword [ebp - 0x24]
call fcn.0040ba78
mov word [ebx + 0xda0], ax
xor edx, edx
mov eax, dword [ebp - 0x30]
call fcn.0040ba78
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], eax
xor edx, edx
mov eax, dword [ebp - 0x38]
call fcn.0040ba78
imul eax, eax, 0x3e8
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], eax
mov ecx, 6
mov edx, 0x573c58
mov eax, dword [ebp - 0x1c]
call fcn.00491970
test al, al
je 0x57395f
mov eax, dword [ebp - 0x1c]
call fcn.00405410
mov edx, dword [ebp - 0x1c]
cmp byte [edx + eax - 1], 0x3e
jne 0x57395f
lea eax, [ebp - 0x3c]
mov edx, dword [ebp - 0x1c]
call fcn.004051d8
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x98]
push eax
mov ecx, 0x573c68
mov edx, 0x573c74
mov eax, dword [ebp - 0x3c]
call fcn.004916b0
mov edx, dword [ebp - 0x98]
lea eax, [ebp - 0x3c]
call fcn.004051d8
mov eax, dword [ebp - 0x1c]
call fcn.0077cfd8
mov edx, eax
add edx, 0xfffffc18
sub edx, 0x1f4
jae 0x57399a
mov edi, eax
sub edi, 0x3e8
mov dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], edi
lea eax, [ebx + 0x18]
mov edx, dword [0x83a4b8]
mov edx, dword [edx + edi*4 + reloc.kernel32.dll_DeleteCriticalSection]
call fcn.00405194
xor edx, edx
mov eax, dword [ebp - 0x28]
call fcn.0040ba78
test eax, eax
setne al
mov byte [ebx + 0x1615], al
xor edx, edx
mov eax, dword [ebp - 0x2c]
call fcn.0040ba78
test eax, eax
je 0x5739c6
cmp dword [ebx + reloc.kernel32.dll_DeleteCriticalSection], 0
ja 0x5739ca
xor eax, eax
jmp 0x5739cc
mov al, 1
mov byte [ebx + 0x1634], al
xor edx, edx
mov eax, dword [ebp - 0x34]
call fcn.0040ba78
test eax, eax
setne al
mov byte [ebx + 0x15dc], al
mov ax, word [ebx + 0xda0]
mov edx, eax
add edx, 0xffffffca
sub dx, 0x16
jb 0x573a11
add edx, 0xfffffff2
sub dx, 0xa
jb 0x573a11
add edx, 0xffffff91
sub dx, 0xf
jb 0x573a11
sub ax, 0xf5
jne 0x573a18
mov byte [ebx + 0x1605], 0
mov ax, word [ebx + 0xda0]
mov edx, eax
add edx, 0xffffffe8
cmp dx, 0x4f
ja 0x573a34
and edx, 0x7f
bt dword [0x573c78], edx
jb 0x573af4
mov edx, eax
add edx, 0xffffffca
sub dx, 0x16
jb 0x573af4
add edx, 0xfffffff2
sub dx, 0xa
jb 0x573af4
mov edx, eax
add edx, 0xffffff36
sub dx, 5
jb 0x573af4
sub dx, 2
je 0x573af4
add edx, 0xfffffffe
sub dx, 0xf
jb 0x573af4
mov edx, eax
add edx, 0xffffff1e
sub dx, 0xa
jb 0x573af4
add edx, 0xfffffff8
sub dx, 2
jb 0x573af4
add eax, 0xffffff0a
sub ax, 6
jb 0x573af4
mov di, word [ebx + 0xda0]
cmp di, 0xfd
jb 0x573ab2
cmp di, 0x101
jbe 0x573af4
cmp word [ebx + 0xda0], 0x103
jb 0x573ac8
cmp word [ebx + 0xda0], 0x106
jbe 0x573af4
cmp word [ebx + 0xda0], 0x109
jb 0x573ade
cmp word [ebx + 0xda0], 0x10c
jbe 0x573af4
cmp word [ebx + 0xda0], 0x10f
jb 0x573afb
cmp word [ebx + 0xda0], 0x110
ja 0x573afb
mov byte [ebx + 0x1604], 0
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov edx, ebx
call fcn.0042111c
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x40]
jmp 0x573b21
mov eax, ebx
call fcn.004041f0
inc esi
dec dword [ebp - 0x54]
jne 0x573319
mov eax, dword [ebp - 0x40]
call fcn.004041f0
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov esi, dword [eax + 8]
dec esi
cmp esi, 0
jl 0x573bbc
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
mov edx, esi
call fcn.004212e4
mov ebx, eax
cmp byte [ebx + 0x15c4], 0xff
jne 0x573bb6
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x5c]
cmp byte [ebx + 0x15d4], 0
jne 0x573bb6
mov eax, dword [0x83a4b8]
cmp byte [eax + 0x7557], 0
je 0x573b9e
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x224
mov eax, ebx
call fcn.00711ce8
jmp 0x573bb6
push 0
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 0x224
mov eax, ebx
call fcn.00712628
dec esi
cmp esi, reloc.kernel32.dll_DeleteCriticalSection
jne 0x573b49
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x573be3
mov eax, dword [0x83a314]
mov eax, dword [eax]
mov eax, dword [eax + 0xc8]
call fcn.0049c8c0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x573c22
lea eax, [ebp - 0x98]
mov edx, 0xe
call fcn.00405164
lea eax, [ebp - 0x5c]
mov edx, 2
call fcn.00405164
lea eax, [ebp - 0x3c]
mov edx, 0xf
call fcn.00405164
ret