Function at 0x511910
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x670
mov eax, dword [0x6aae14]
xor eax, esp
mov dword [esp + 0x66c], eax
mov edx, dword [esp + 0x690]
mov eax, dword [esp + 0x67c]
mov ecx, dword [esp + 0x68c]
push ebx
mov ebx, dword [esp + 0x68c]
push ebp
mov ebp, dword [esp + 0x68c]
push esi
mov esi, dword [esp + 0x68c]
push edi
mov edi, dword [esp + 0x684]
push 0x103
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x6a8]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6ac]
lea edx, [esp + 0x69]
push 0
push edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x70], 0
call fcn.005dfd60
push 0x103
lea eax, [esp + 0x27d]
push 0
push eax
mov byte [esp + 0x284], 0
call fcn.005dfd60
add esp, 0x18
test esi, esi
je 0x5119c6
mov dword [esi], 0
test ebp, ebp
je 0x5119d1
mov dword [ebp], 0xffffffff
test ebx, ebx
je 0x5119db
mov dword [ebx], 0xffffffff
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5119e9
mov dword [eax], 0xffffffff
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
xor eax, eax
push edi
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
xor esi, esi
xor ebp, ebp
call ebx
test eax, eax
jle 0x511a31
cmp ebp, 0x26
jge 0x511a31
mov al, byte [edi + esi]
cmp al, 0x2d
je 0x511a29
cmp al, 0x20
je 0x511a29
movsx ecx, al
push ecx
call fcn.005e3ae6
add esp, 4
mov byte [esp + ebp + 0x64], al
inc ebp
push edi
inc esi
call ebx
cmp esi, eax
jl 0x511a08
lea edx, [esp + 0x64]
push edx
mov byte [esp + ebp + 0x68], 0
call ebx
cmp eax, 0x1e
je 0x511a4c
mov eax, 1
jmp 0x511e89
movsx ecx, byte [esp + 0x65]
movsx eax, byte [esp + 0x7c]
sub eax, ecx
mov ecx, dword [esp + 0x688]
add eax, 0x2f
lea edx, [ecx + 0x30]
cmp eax, edx
je 0x511a86
xor edx, edx
cmp ecx, 1
jne 0x511a75
lea edx, [ecx + 3]
jmp 0x511a7f
cmp ecx, 2
jne 0x511a7f
mov edx, 5
add edx, 0x30
cmp eax, edx
jne 0x511a42
movsx esi, byte [esp + 0x6f]
sub esi, 0x40
xor ecx, ecx
test esi, esi
jle 0x511aea
mov eax, ecx
and eax, 0x80000001
jns 0x511aa2
dec eax
or eax, 0xfffffffe
inc eax
mov dl, byte [esp + eax + 0x64]
mov al, byte [esp + ecx + 0x70]
movsx edi, al
movsx ebp, dl
sub edi, ebp
add edi, 0x40
sub al, dl
cmp edi, 0x40
jge 0x511ac0
add al, 0x5a
jmp 0x511ac2
add al, 0x40
cmp al, 0x41
mov byte [esp + ecx + 0x26c], al
jl 0x511ad1
cmp al, 0x5a
jle 0x511ae5
cmp al, 0x30
jl 0x511ad9
cmp al, 0x39
jle 0x511ae5
cmp al, 0x2d
je 0x511ae5
cmp al, 0x5f
jne 0x511a42
inc ecx
cmp ecx, esi
jl 0x511a94
mov byte [esp + ecx + 0x26c], 0
lea ecx, [esp + 0x26c]
push ecx
call ebx
cmp eax, 1
jl 0x511a42
mov edx, dword [esp + 0x24]
test edx, edx
je 0x511b8b
xor eax, eax
mov dword [esp + 0x41], eax
mov dword [esp + 0x4d], eax
mov dword [esp + 0x51], eax
mov byte [esp + 0x55], al
mov dword [esp + 0x45], eax
mov byte [esp + 0x49], al
mov ax, word [esp + 0x79]
mov byte [esp + 0x4c], 0
mov word [esp + 0x4c], ax
movzx ecx, byte [esp + 0x4c]
sub cl, byte [esp + 0x65]
mov al, byte [esp + 0x7b]
add cl, 0x2f
mov byte [esp + 0x40], cl
movzx ecx, byte [esp + 0x4d]
sub cl, byte [esp + 0x64]
movsx esi, al
add cl, 0x2f
mov byte [esp + 0x42], cl
mov cl, byte [esp + 0x78]
movsx edi, cl
sub esi, edi
add esi, 0x5a
sub al, cl
cmp esi, 0x5a
mov byte [esp + 0x41], 0x2e
jge 0x511b79
add al, 0x5a
jmp 0x511b7b
add al, 0x40
mov byte [esp + 0x43], al
lea eax, [esp + 0x40]
push eax
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov esi, dword [esp + 0x20]
test esi, esi
je 0x511bec
push 0x103
lea ecx, [esp + 0x16d]
push 0
push ecx
mov byte [esp + 0x174], 0
call fcn.005dfd60
add esp, 0xc
xor eax, eax
jmp 0x511bc0
mov cl, byte [esp + eax + 0x272]
mov byte [esp + eax + 0x168], cl
inc eax
test cl, cl
jne 0x511bc0
lea edx, [esp + 0x168]
push edx
mov byte [esp + 0x16e], cl
call fcn.004da540
add esp, 4
mov dword [esi], eax
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x511c4e
push 0x103
lea eax, [esp + 0x16d]
push 0
push eax
mov byte [esp + 0x174], 0
call fcn.005dfd60
add esp, 0xc
xor eax, eax
jmp 0x511c20
mov cl, byte [esp + eax + 0x26e]
mov byte [esp + eax + 0x168], cl
inc eax
test cl, cl
jne 0x511c20
mov byte [esp + 0x16c], cl
lea ecx, [esp + 0x168]
push ecx
call fcn.004da540
add esp, 4
mov dword [esi], eax
jmp 0x511c6b
lea edx, [esp + 0x26c]
push str.MICROWOR
push edx
call fcn.004dd620
add esp, 8
test eax, eax
jne 0x511a42
cmp byte [esp + 0x6e], 0x51
mov eax, dword [esp + 0x1c]
jl 0x511c84
test eax, eax
je 0x511c80
mov dword [eax], 0
xor ebx, ebx
jmp 0x511c93
test eax, eax
je 0x511c8e
mov dword [eax], 1
mov ebx, 1
xor ecx, ecx
lea edx, [esp + 0x58]
lea esp, [esp]
mov esi, ecx
and esi, 0x80000001
jns 0x511caf
dec esi
or esi, 0xfffffffe
inc esi
mov al, byte [esp + ecx + 0x66]
sub al, byte [esp + esi + 0x64]
add al, 0x2f
cmp al, 0x30
mov byte [edx], al
jl 0x511a42
cmp al, 0x39
jg 0x511a42
cmp ecx, 1
je 0x511cd5
cmp ecx, 3
jne 0x511cd6
inc edx
inc ecx
inc edx
cmp ecx, 8
jl 0x511ca0
lea eax, [esp + 0x58]
push eax
call fcn.005e0909
lea ecx, [esp + 0x5f]
push ecx
mov ebp, eax
call fcn.005e0909
lea edx, [esp + 0x66]
push edx
mov edi, eax
call fcn.005e0909
add esp, 0xc
cmp dword [esp + 0x14], 0
mov esi, eax
je 0x511d11
mov eax, dword [esp + 0x14]
mov dword [eax], ebp
mov eax, dword [esp + 0x10]
test eax, eax
je 0x511d1b
mov dword [eax], edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x511d25
mov dword [eax], esi
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [esp + 0x30]
cmp esi, eax
jl 0x511e74
jg 0x511d5b
movzx eax, word [esp + 0x32]
cmp edi, eax
jl 0x511e74
jg 0x511d5b
movzx edx, word [esp + 0x36]
cmp ebp, edx
jl 0x511e74
cmp ebx, 1
jne 0x511e87
push 0x103
lea eax, [esp + 0x57d]
push 0
push eax
mov byte [esp + 0x584], 0
call fcn.005dfd60
push 0x103
lea ecx, [esp + 0x179]
push 0
push ecx
mov byte [esp + 0x180], 0
call fcn.005dfd60
push 0x103
lea edx, [esp + 0x491]
push 0
push edx
mov byte [esp + 0x498], 0
call fcn.005dfd60
push 0
push 0
push 0
lea eax, [esp + 0x198]
push eax
lea ecx, [esp + 0x5ac]
push ecx
call fcn.00511410
add esp, 0x38
lea edx, [esp + 0x168]
push edx
push 0x104
lea eax, [esp + 0x47c]
push eax
push 0x60cf3c
push str.InstalledForEScan
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [esp + 0x474], 0x30
je 0x511e87
push 0x103
lea ecx, [esp + 0x375]
push 0
push ecx
mov byte [esp + 0x37c], 0
call fcn.005dfd60
lea edx, [esp + 0x37c]
push edx
call fcn.004ef210
add esp, 0x10
lea eax, [esp + 0x10]
push eax
push 0xf003f
push 0
lea ecx, [esp + 0x37c]
push ecx
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
jne 0x511e87
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 2
jmp 0x511e89
cmp ebx, 1
je 0x511e6d
mov eax, dword [esp + 0x28]
test eax, eax
je 0x511e87
mov dword [eax], 1
xor eax, eax
mov ecx, dword [esp + 0x67c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005dfbbe
add esp, 0x670
ret