Function at 0x409f90
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
sub esp, 0x224
mov dword [0x46247c], 0x64
mov dword [0x462470], 0x5622
mov dword [0x462464], 0x400
mov dword [0x462474], 0x300
mov edi, 0x461f24
xor eax, eax
xor edx, edx
mov dword [0x454844], eax
mov dword [0x4624b0], eax
mov dword [0x462488], eax
mov dword [0x462498], eax
mov dword [0x4624a0], eax
mov dword [0x462480], eax
mov dword [0x462490], eax
mov dword [0x4624b4], eax
mov dword [0x462494], eax
mov dword [0x4624a8], eax
mov dword [0x4624a4], eax
mov dword [0x4624b8], edx
mov dword [0x46249c], edx
mov dword [0x462468], edx
mov dword [0x462460], edx
mov dword [0x462478], edx
mov eax, dword [ebp + 8]
mov dword [0x459008], edx
mov dword [0x46248c], eax
mov eax, dword [0x459018]
mov dword [0x462454], edx
lea edx, [eax + 2]
xor esi, esi
mov dword [0x462448], eax
xor eax, eax
mov dword [0x46244c], edx
mov dword [0x45900c], eax
mov dword [0x4624ac], eax
mov dword [0x462450], eax
mov dword [0x46246c], eax
mov dword [0x462444], eax
mov dword [0x462458], eax
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov byte [0x462144], 0
mov byte [0x462244], 0
mov dword [0x46245c], eax
mov dword [0x462124], esi
xor dl, dl
mov esi, 0x4432fc
mov byte [0x462024], dl
push edi
mov al, byte [esi]
mov byte [edi], al
cmp al, 0
je 0x40a0b0
mov al, byte [esi + 1]
add esi, 2
mov byte [edi + 1], al
add edi, 2
cmp al, 0
jne 0x40a098
pop edi
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x10], 2
cmp byte [eax], 0
je 0x40a0e9
mov dh, 0x20
mov ch, byte [eax]
cmp dl, ch
je 0x40a0cf
cmp dh, ch
jb 0x40a0cf
inc eax
jmp 0x40a0c2
cmp dl, byte [eax]
jne 0x40a0e0
mov cl, byte [eax]
cmp dl, cl
je 0x40a0e5
cmp dh, cl
jae 0x40a0e5
inc eax
jmp 0x40a0d3
inc dword [ebp - 0x10]
jmp 0x40a0d3
cmp dl, byte [eax]
jne 0x40a0c2
mov eax, dword [ebp - 0x10]
shl eax, 2
call fcn.0042c650
push 0x100
push 0x462344
push 0
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameA]
test eax, eax
je 0x40a13d
mov eax, 0x462344
mov edx, dword [ebp - 0x1c]
mov dword [edx], eax
mov eax, dword [ebp + 0x10]
mov esi, 1
xor ebx, ebx
cmp byte [eax], 0
je 0x40a18e
mov edx, 4
mov cl, byte [eax]
test cl, cl
je 0x40a144
cmp cl, 0x20
ja 0x40a144
inc eax
jmp 0x40a12f
mov eax, dword [0x45d580]
jmp 0x40a112
cmp byte [eax], 0x22
jne 0x40a150
mov ebx, 1
add eax, ebx
cmp byte [eax], 0
je 0x40a160
mov ecx, edx
add ecx, dword [ebp - 0x1c]
inc esi
add edx, 4
mov dword [ecx], eax
test ebx, ebx
je 0x40a172
mov cl, byte [eax]
test cl, cl
je 0x40a180
cmp cl, 0x22
je 0x40a180
inc eax
jmp 0x40a164
mov cl, byte [eax]
test cl, cl
je 0x40a180
cmp cl, 0x20
jbe 0x40a180
inc eax
jmp 0x40a172
cmp byte [eax], 0
je 0x40a189
mov byte [eax], 0
inc eax
cmp byte [eax], 0
jne 0x40a12f
mov eax, esi
shl eax, 2
add eax, dword [ebp - 0x1c]
push 0x443304
mov dword [eax], 0
xor edx, edx
mov dword [ebp - 0x60], 0x1003
mov dword [ebp - 0x5c], fcn.0040a7c0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x58], edx
push eax
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
call dword [sym.imp.USER32.DLL_LoadIconA]
push 0x7f00
push 0
mov dword [ebp - 0x4c], eax
call dword [sym.imp.USER32.DLL_LoadCursorA]
push 4
mov dword [ebp - 0x48], eax
call dword [sym.imp.GDI32.DLL_GetStockObject]
mov dword [ebp - 0x44], eax
mov eax, dword [0x45d580]
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x40], 0x443309
call dword [sym.imp.USER32.DLL_RegisterClassA]
test ax, ax
je 0x40a6bc
mov edx, 0x44330e
mov ebx, dword [0x45d588]
xor eax, eax
call fcn.00407b40
mov edx, 0x443314
mov ebx, dword [0x45d58c]
mov edi, eax
mov dword [0x45d588], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x44331b
mov ebx, dword [0x462480]
mov dword [ebp - 0x14], eax
mov dword [0x45d58c], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x443323
mov ebx, dword [0x4624a8]
mov dword [0x462480], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x44332b
mov dword [0x4624a8], eax
xor ebx, ebx
xor eax, eax
mov ecx, 0x100
call fcn.00407b40
mov ebx, 0x462144
mov edx, 0x443336
mov dword [0x4624b4], eax
xor eax, eax
call fcn.00407d40
mov edx, 0x44333f
xor ebx, ebx
xor eax, eax
call fcn.00407b40
test eax, eax
je 0x40a2a7
or byte [0x4624a8], 8
mov eax, dword [ebp - 0x1c]
mov edx, dword [0x4624a8]
call fcn.004013a0
lea edx, [ebp - 0x24]
mov dword [0x4624a8], eax
lea eax, [ebp - 0x28]
call fcn.0040c400
mov eax, dword [ebp - 0x28]
mov edx, eax
sar edx, 0x1f
sub eax, edx
sar eax, 1
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov edx, eax
sar edx, 0x1f
sub eax, edx
sar eax, 1
mov dword [ebp - 0x24], eax
xor eax, eax
push 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x14]
push 0x2cf0000
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x30], edi
call dword [sym.imp.USER32.DLL_AdjustWindowRect]
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x38]
mov eax, edx
sar edx, 0x1f
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x28]
sub edx, dword [ebp - 0x34]
sub ebx, eax
mov eax, edx
sar edx, 0x1f
sub eax, edx
sar eax, 1
mov edx, 0x443347
sub dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x28], ebx
call fcn.00407b40
mov ebx, dword [ebp - 0x24]
mov edx, 0x443349
mov dword [0x4624bc], eax
xor eax, eax
call fcn.00407b40
push 0x4d
mov dword [0x4624c0], eax
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
push 0x4c
mov dword [ebp - 0x20], eax
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
push 0x4e
mov ebx, eax
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov edx, ebx
add edx, eax
push 0x4f
mov dword [ebp - 0x18], edx
call dword [sym.imp.USER32.DLL_GetSystemMetrics]
mov edx, dword [ebp - 0x20]
add edx, eax
mov eax, dword [0x4624bc]
add eax, edi
cmp eax, ebx
jle 0x40a6c8
mov eax, dword [0x4624bc]
cmp eax, dword [ebp - 0x18]
jge 0x40a6c8
mov eax, dword [0x4624c0]
add eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x20]
jle 0x40a6c8
mov ebx, dword [0x4624c0]
cmp edx, ebx
jle 0x40a6c8
mov eax, dword [0x4624bc]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], eax
xor eax, eax
push eax
mov edx, dword [ebp + 8]
push edx
push eax
mov dword [0x4624b8], eax
push eax
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x28]
push edx
push 0x12cf0000
mov ecx, dword [0x45d57c]
push ecx
mov ebx, dword [0x45d580]
push ebx
push 0
call dword [sym.imp.USER32.DLL_CreateWindowExA]
mov dword [0x4624b8], eax
test eax, eax
je 0x40a6dd
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov ebx, edi
call fcn.00408670
push 1
mov edi, dword [0x4624b8]
push edi
call dword [sym.imp.SHELL32.DLL_DragAcceptFiles]
mov eax, dword [0x462480]
test eax, eax
je 0x40a444
mov eax, 8
push eax
push 0x395
mov edx, dword [0x4624b8]
push edx
call dword [sym.imp.USER32.DLL_GetMenu]
push eax
call dword [sym.imp.USER32.DLL_CheckMenuItem]
mov eax, 4
call fcn.004067a0
test eax, eax
je 0x40a471
mov eax, 8
push eax
push 0x39c
mov ecx, dword [0x4624b8]
push ecx
call dword [sym.imp.USER32.DLL_GetMenu]
push eax
call dword [sym.imp.USER32.DLL_CheckMenuItem]
mov eax, dword [0x4624a8]
call fcn.004089b0
lea eax, [ebp - 0x230]
push eax
xor ebx, ebx
push 0x202
mov dword [ebp - 0x10], ebx
call dword [sym.imp.WS2_32.DLL_WSAStartup]
mov eax, dword [0x46248c]
mov ecx, 0x1000
call fcn.0040e410
xor edi, edi
mov eax, dword [0x4624b8]
mov edx, ecx
call fcn.0040e9d0
mov eax, dword [ebp - 0x10]
push eax
push 0x44334b
lea eax, [ebp - 0xa0]
push eax
mov ebx, edi
call fcn.0042c8a0
add esp, 0xc
lea edx, [ebp - 0xa0]
mov eax, edi
call fcn.00407b40
xor edx, edx
mov dl, al
xor eax, eax
mov al, byte [ebp - 0x10]
call fcn.0040c2a0
mov edx, dword [ebp - 0x10]
inc edx
add ecx, 0x40
mov dword [ebp - 0x10], edx
cmp edx, 4
jl 0x40a4bd
mov edx, 0x443358
mov ebx, dword [0x46247c]
xor eax, eax
call fcn.00407b40
mov edx, 0x443361
mov ebx, dword [0x462470]
mov ecx, eax
xor eax, eax
call fcn.00407b40
mov edx, ecx
call fcn.0040c320
mov edx, 0x443369
mov ebx, dword [0x45901c]
xor eax, eax
call fcn.00407b40
mov edx, 0x443373
mov ebx, dword [0x459020]
mov dword [0x45901c], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x44337d
mov ebx, dword [0x459024]
mov dword [0x459020], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x443387
mov ebx, dword [0x459028]
mov dword [0x459024], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x443391
mov ebx, dword [0x45902c]
mov dword [0x459028], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x44339b
mov ebx, dword [0x459030]
mov dword [0x45902c], eax
xor eax, eax
call fcn.00407b40
mov dword [0x459030], eax
mov edx, 0x4433a6
mov ebx, dword [0x459034]
xor eax, eax
call fcn.00407b40
mov edx, 0x4433af
mov ebx, dword [0x459038]
mov dword [0x459034], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x4433b9
mov ebx, dword [0x45903c]
mov dword [0x459038], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x4433c3
mov ebx, dword [0x459040]
mov dword [0x45903c], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x4433cd
mov ebx, dword [0x459044]
mov dword [0x459040], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x4433d7
mov ebx, dword [0x459048]
mov dword [0x459044], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x4433e1
mov ebx, dword [0x45904c]
mov dword [0x459048], eax
xor eax, eax
call fcn.00407b40
mov edx, 0x4433ec
mov ebx, dword [0x459050]
mov dword [0x45904c], eax
xor eax, eax
call fcn.00407b40
mov edx, dword [ebp - 0x1c]
mov dword [0x459050], eax
mov eax, esi
call fcn.0042adc0
call fcn.0040e4d0
call fcn.0040ca50
mov eax, dword [ebp - 0x1c]
call fcn.0042c770
mov eax, 0x462124
call fcn.00409ef0
call fcn.0040d470
call dword [sym.imp.WS2_32.DLL_WSACleanup]
mov eax, 1
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
xor eax, eax
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret 0x10
mov eax, dword [ebp - 0x28]
mov dword [0x4624bc], eax
mov eax, dword [ebp - 0x24]
mov dword [0x4624c0], eax
jmp 0x40a3cb
mov eax, dword [ebp - 0x1c]
call fcn.0042c770
xor eax, eax
lea esp, [ebp - 0xc]
pop edi
pop esi
pop ebx
pop ebp
ret 0x10