Function at 0x100415f0
Capabilities:
Check for time delay via gettickcount
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [esp + 0x14]
push eax
mov edi, ebx
mov eax, esi
call fcn.10041af0
mov eax, dword [esp + 0x14]
test eax, eax
mov ecx, dword [esi + 4]
mov dword [esp + 0x10], ecx
je 0x10041623
cmp eax, esi
je 0x10041628
call fcn.10055f58
mov edi, dword [esp + 0x18]
cmp edi, dword [esp + 0x10]
je 0x1004169e
cmp dword [esp + 0x14], 0
jne 0x1004163e
call fcn.10055f58
mov edx, dword [esp + 0x14]
cmp edi, dword [edx + 4]
jne 0x1004164c
call fcn.10055f58
mov eax, dword [edi + 0xc]
cmp eax, dword [ebx]
jne 0x1004169e
mov cx, word [edi + 0x10]
cmp cx, word [ebx + 4]
jne 0x1004169e
mov edx, dword [edi + 0x12]
cmp edx, dword [ebx + 6]
jne 0x1004169e
mov ax, word [edi + 0x16]
cmp ax, word [ebx + 0xa]
jne 0x1004169e
mov ecx, dword [esp + 0x14]
cmp edi, dword [ecx + 4]
jne 0x1004167d
call fcn.10055f58
mov edi, dword [edi + 0x18]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test byte [ebp + 0x10], 2
mov dword [edi + 0xc], eax
je 0x10041693
mov byte [edi + 0x1e], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
test byte [ebp + 0x10], 1
je 0x1004181a
mov edx, dword [esi + 4]
mov eax, dword [edx]
mov edi, esi
mov esi, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
lea esp, [esp]
test edi, edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov dword [esp + 0x20], ecx
je 0x100416d2
cmp edi, eax
je 0x100416d7
call fcn.10055f58
cmp esi, dword [esp + 0x20]
je 0x10041781
test edi, edi
jne 0x100416ea
call fcn.10055f58
cmp esi, dword [edi + 4]
jne 0x100416f4
call fcn.10055f58
mov edx, dword [esi + 0x18]
mov dword [esp + 0xc], edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esp + 0xc]
sub eax, dword [ecx + 0xc]
cmp eax, 0xea60
jbe 0x1004176b
cmp esi, dword [edi + 4]
jne 0x10041719
call fcn.10055f58
mov ebx, dword [esi + 0x18]
test ebx, ebx
je 0x1004174e
mov eax, dword [ebx + 0x20]
test eax, eax
mov dword [esp + 0xc], eax
je 0x10041745
push eax
call fcn.10039c10
mov edx, dword [esp + 0xc]
push edx
call fcn.100549f0
add esp, 4
mov dword [ebx + 0x20], 0
push ebx
call fcn.100549f0
add esp, 4
mov ecx, dword [ebp + 8]
push esi
push edi
lea eax, [esp + 0x34]
push eax
push ecx
call fcn.10041830
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov ebx, dword [ebp + 0xc]
jmp 0x100416b1
lea esi, [esp + 0x14]
call fcn.10043120
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
jmp 0x100416c0
push 0x24
call fcn.100551e8
mov esi, eax
xor edi, edi
add esp, 4
cmp esi, edi
je 0x100417af
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xc], eax
mov byte [esi + 0x1f], 0
mov byte [esi + 0x1e], 0
mov dword [esi + 0x20], edi
jmp 0x100417b1
xor esi, esi
mov edx, dword [ebx]
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
push edx
call edi
mov dword [esi], eax
movzx eax, word [ebx + 4]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [esi + 0x18], ax
mov ecx, dword [ebx + 6]
push ecx
call edi
mov dword [esi + 4], eax
movzx edx, word [ebx + 0xa]
push edx
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [esi + 0x1a], ax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov edx, dword [ebx + 8]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x20], ecx
push eax
lea ecx, [esp + 0x30]
push ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], esi
call fcn.100420f0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc