Function at 0x41aa76
Capabilities:
Initialize winsock library

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x228
mov eax, dword [0x4566b4]
push esi
push edi
mov dword [ebp - 4], eax
lea eax, [ebp - 0x198]
push eax
xor esi, esi
push 0x402dc4
push esi
mov dword [ebp - 0x198], esi
mov dword [ebp - 0x19c], esi
call fcn.00418027
mov edi, eax
cmp edi, esi
jl 0x41aaca
lea eax, [ebp - 0x19c]
push eax
push dword [ebp - 0x198]
call dword [sym.imp.ole32.dll_CoRegisterMessageFilter]
mov edi, eax
cmp edi, esi
jge 0x41aaf1
mov eax, dword [ebp - 0x19c]
cmp eax, esi
je 0x41aada
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x198]
cmp eax, esi
je 0x41aaea
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
jmp 0x41b0bf
push esi
push 1
push 0x80000001
push 0x403424
lea ecx, [ebp - 0x1c4]
call fcn.0044dbd9
push 0x40204f
push 0x40341c
lea ecx, [ebp - 0x1c4]
call fcn.0044dc9f
call fcn.0043926d
call fcn.004388df
push 0xc
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
je 0x41ab3e
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
jmp 0x41ab40
xor eax, eax
cmp eax, esi
mov dword [0x45699c], eax
jne 0x41ab7e
lea ecx, [ebp - 0x1c4]
call fcn.0044df2e
mov eax, dword [ebp - 0x19c]
cmp eax, esi
je 0x41ab64
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x198]
cmp eax, esi
je 0x41ab74
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004005
jmp 0x41b0bf
push ebx
push 0x4568e4
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov ebx, eax
cmp ebx, esi
je 0x41abcb
mov edi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0xe
push ebx
call edi
push 0xc
push ebx
mov dword [ebp - 0x1a0], eax
call edi
mov ecx, dword [ebp - 0x1a0]
imul ecx, eax
xor eax, eax
cmp ecx, 8
setg al
push ebx
push esi
mov dword [0x4569b0], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x11
call dword [sym.imp.GDI32.dll_GetStockObject]
cmp eax, esi
mov dword [0x456a28], eax
je 0x41b08e
call fcn.0041f3ad
cmp dword [0x456910], 2
jne 0x41ac40
push esi
push esi
push 0x80000002
push 0x4033f4
lea ecx, [ebp - 0x200]
call fcn.0044dbd9
cmp dword [0x456904], 4
ja 0x41ac2b
push 4
push 0x4033ec
lea ecx, [ebp - 0x200]
call fcn.0044dd85
cmp eax, 4
mov dword [0x4569c0], esi
je 0x41ac35
mov dword [0x4569c0], 1
lea ecx, [ebp - 0x200]
call fcn.0044df2e
call fcn.00411f24
call fcn.0040922f
mov eax, dword [0x456734]
mov dword [ebp - 0x218], eax
lea eax, [ebp - 0x228]
mov edi, 0x402510
push eax
mov dword [ebp - 0x228], esi
mov dword [ebp - 0x224], 0x416937
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], esi
mov dword [ebp - 0x214], esi
mov dword [ebp - 0x210], esi
mov dword [ebp - 0x20c], esi
mov dword [ebp - 0x208], esi
mov dword [ebp - 0x204], edi
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
je 0x41b08e
push 0x4024f8
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
push 0x24
mov dword [0x4568e0], eax
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
je 0x41accf
mov ecx, eax
call fcn.00411cba
jmp 0x41acd1
xor eax, eax
cmp eax, esi
mov dword [0x4569cc], eax
je 0x41b08e
mov ecx, eax
call fcn.0041fb2f
push esi
push dword [0x456734]
push esi
push esi
push esi
push esi
push esi
push esi
push 0x80000000
push 0x40204f
push edi
push esi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ecx, dword [0x4569cc]
mov dword [0x4569d0], eax
cmp dword [ecx + 0x10], esi
je 0x41b08e
cmp eax, esi
je 0x41b08e
push esi
push 1
mov ebx, 0x80000001
push ebx
push dword [0x4565f8]
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x1a8], esi
call fcn.0044dbd9
push esi
mov edi, 0x4033e0
push edi
lea ecx, [ebp - 0x1e4]
mov dword [ebp - 0x1a0], esi
call fcn.0044dd85
shr eax, 0x10
and ax, 0x501
cmp ax, 0x501
je 0x41ad9d
push esi
push 0x4033d4
lea ecx, [ebp - 0x1e4]
call fcn.0044dd85
cmp eax, 0x5010a28
je 0x41ad89
cmp dword [ebp + 8], esi
je 0x41ad9d
call fcn.00412705
jmp 0x41ad8e
cmp dword [ebp + 8], esi
je 0x41ad9d
mov dword [ebp - 0x1a0], 1
call fcn.0044a33a
push dword [ebp + 8]
lea eax, [ebp - 0x1a8]
push dword [ebp - 0x1a0]
push eax
call fcn.0044cf64
cmp eax, esi
jge 0x41adc8
push 0x40
push 0x139
push esi
call fcn.0041ca81
jmp 0x41b083
cmp eax, 1
jne 0x41ae0d
lea ecx, [ebp - 0x1e4]
call fcn.0044df2e
lea ecx, [ebp - 0x1c4]
call fcn.0044df2e
mov eax, dword [ebp - 0x19c]
cmp eax, esi
je 0x41adf3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x198]
cmp eax, esi
je 0x41ae03
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x81000205
jmp 0x41b0be
cmp dword [ebp - 0x1a0], esi
je 0x41ae30
cmp dword [ebp + 8], esi
jne 0x41ae1f
mov edi, 0x4033d4
push 0x5010a28
push edi
lea ecx, [ebp - 0x1e4]
call fcn.0044dce1
cmp dword [ebp + 8], esi
je 0x41ae50
cmp dword [ebp - 0x1a0], esi
je 0x41ae50
call fcn.00411d11
test al, al
je 0x41ae50
push 0x9cf6
call fcn.00411a3b
lea eax, [ebp - 0x1c8]
push eax
push 0x4033a0
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
jne 0x41ae79
push dword [ebp - 0x1c8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41aeb1
push esi
push 1
push ebx
push dword [0x456600]
lea ecx, [ebp - 0x200]
call fcn.0044dbd9
push 2
push 0x401e34
lea ecx, [ebp - 0x200]
call fcn.0044dd85
push eax
call fcn.00407dcf
lea ecx, [ebp - 0x200]
call fcn.0044df2e
cmp dword [ebp + 8], esi
je 0x41aebc
push esi
call fcn.0043fa8d
push 0x28
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
je 0x41aee0
push 0x403398
push 0x403368
mov ecx, eax
call fcn.0040e6c8
mov dword [0x456998], eax
jmp 0x41aee6
mov dword [0x456998], esi
cmp dword [0x4567c4], esi
mov dword [0x4569d4], 1
jne 0x41af3a
cmp dword [ebp - 0x1a8], esi
mov dword [0x4569d4], 0x21
je 0x41af1a
call fcn.00440c80
test al, al
jne 0x41af1a
or dword [0x4569d4], 6
call fcn.00440cb0
test al, al
jne 0x41af2a
or dword [0x4569d4], 0x10
call fcn.00440c98
test al, al
jne 0x41af3a
or dword [0x4569d4], 8
push 0x4569a4
push 0x401a58
push 3
push esi
push 0x401b68
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jl 0x41b083
mov eax, dword [0x4569a4]
lea edx, [ebp - 0x1a4]
push edx
mov dword [ebp - 0x1a4], esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
test eax, eax
jl 0x41afd3
mov eax, dword [ebp - 0x1a4]
mov ecx, dword [eax]
push 0x4569a0
push 0x401a68
push eax
call dword [ecx]
test eax, eax
jl 0x41afd3
lea eax, [ebp - 0x1a0]
push eax
mov edi, 0x401a78
push edi
push esi
mov dword [ebp - 0x1a0], esi
call fcn.0041807a
test eax, eax
jl 0x41afc3
push 0x4569a8
push edi
push dword [ebp - 0x1a0]
push dword [0x4569a0]
call fcn.0041eafa
mov eax, dword [ebp - 0x1a0]
cmp eax, esi
je 0x41afd3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [0x4569a4]
mov ecx, dword [eax]
push 0x4569d4
push esi
push eax
call dword [ecx + 0xc]
cmp eax, esi
jge 0x41b022
cmp eax, 0x8100fe05
je 0x41b018
cmp eax, 0x8100fe09
je 0x41b011
cmp eax, 0x8100fe17
je 0x41b073
xor ecx, ecx
cmp eax, 0x8100fe29
setne cl
add ecx, 0x16b
mov eax, ecx
jmp 0x41b01d
mov eax, 0x16e
jmp 0x41b01d
mov eax, 0x16c
push 0x40
push eax
jmp 0x41b042
push 0x80800c04
call fcn.004123e9
push dword [0x456734]
call fcn.0041cf3d
test eax, eax
jne 0x41b04a
push 0x40
push 0x16c
push esi
call fcn.0041ca81
jmp 0x41b073
call fcn.00412326
push dword [0x4569a4]
call fcn.0041c9fe
test eax, eax
je 0x41b073
lea eax, [ebp - 0x194]
push eax
push 0x101
call sub.WSOCK32.dll_WSAStartup
test eax, eax
je 0x41b0cd
mov eax, dword [ebp - 0x1a4]
cmp eax, esi
je 0x41b083
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x1e4]
call fcn.0044df2e
lea ecx, [ebp - 0x1c4]
call fcn.0044df2e
mov eax, dword [ebp - 0x19c]
cmp eax, esi
je 0x41b0a9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x198]
cmp eax, esi
je 0x41b0b9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80004005
pop ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
call fcn.0044d575
leave
ret 4
xor edi, edi
inc edi
mov dword [0x4569b8], edi
call fcn.004110ab
call fcn.0043f72e
push dword [ebp + 8]
call fcn.0041df9a
push 0x18
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
je 0x41b111
or dword [eax + 0x10], 0xffffffff
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
mov dword [eax + 0x14], 0xfffffffe
mov dword [0x4570a0], eax
jmp 0x41b117
mov dword [0x4570a0], esi
call fcn.0040bc89
test eax, eax
jne 0x41b199
push esi
push edi
push ebx
push dword [0x4565f8]
lea ecx, [ebp - 0x200]
call fcn.0044dbd9
push esi
push 0x4020dc
lea ecx, [ebp - 0x200]
call fcn.0044dd85
test eax, eax
je 0x41b176
mov eax, dword [0x4569bc]
mov ebx, dword [eax]
push 0x4020cc
lea ecx, [ebp - 0x200]
call fcn.0044e004
mov ecx, dword [0x4569bc]
push eax
call dword [ebx + 0x14]
mov ecx, dword [0x4569bc]
mov eax, dword [ecx]
push edi
call dword [eax + 0x10]
call fcn.00411d56
test al, al
je 0x41b18c
cmp dword [0x4567c8], esi
jne 0x41b18c
call fcn.00435529
lea ecx, [ebp - 0x200]
call fcn.0044df2e
jmp 0x41b19e
call fcn.0040cdc7
cmp dword [0x4567bc], esi
jne 0x41b1bc
mov eax, dword [0x4569cc]
cmp eax, esi
jne 0x41b1b3
xor eax, eax
jmp 0x41b1b6
mov eax, dword [eax + 0x10]
push eax
call fcn.00440fb3
mov byte [0x4569ac], 1
call fcn.00435da5
mov eax, dword [ebp - 0x1a4]
cmp eax, esi
je 0x41b1d8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x1e4]
call fcn.0044df2e
lea ecx, [ebp - 0x1c4]
call fcn.0044df2e
mov eax, dword [ebp - 0x19c]
cmp eax, esi
je 0x41b1fe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x198]
cmp eax, esi
je 0x41b20e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
jmp 0x41b0be