Function at 0x417f10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x74
mov eax, dword [0x469a54]
xor eax, esp
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x78]
push ebx
push ebp
mov ebp, dword [esp + 0x88]
push esi
push edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x14], edi
cmp eax, 2
jne 0x417f9c
push dword [edi]
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x94]
mov ecx, eax
movzx eax, cl
push eax
mov eax, ecx
shr eax, 8
movzx eax, al
push eax
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
push eax
push ecx
push str._d._d._d._d
push esi
push ebp
call fcn.00417e10
add esp, 0x1c
test eax, eax
js 0x418263
cmp eax, esi
jae 0x418263
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0042eefa
add esp, 0x74
ret
cmp eax, 0x17
jne 0x418263
movzx ecx, byte [edi]
mov eax, 0x100
imul ecx, eax
xor esi, esi
movzx edx, byte [edi + 1]
or ebx, 0xffffffff
add dx, cx
movzx ecx, byte [edi + 2]
imul ecx, eax
movzx eax, byte [edi + 3]
mov word [esp + 0x30], dx
add cx, ax
movzx eax, cx
mov dword [esp + 0x18], eax
mov eax, 0x100
mov word [esp + 0x32], cx
movzx ecx, byte [edi + 4]
imul ecx, eax
movzx eax, byte [edi + 5]
add cx, ax
movzx eax, cx
mov dword [esp + 0x1c], eax
mov eax, 0x100
mov word [esp + 0x34], cx
movzx ecx, byte [edi + 6]
imul ecx, eax
movzx eax, byte [edi + 7]
add cx, ax
movzx eax, cx
mov dword [esp + 0x20], eax
mov eax, 0x100
mov word [esp + 0x36], cx
movzx ecx, byte [edi + 8]
imul ecx, eax
movzx eax, byte [edi + 9]
movzx edi, byte [edi + 0xa]
add cx, ax
movzx eax, cx
mov dword [esp + 0x24], eax
mov eax, 0x100
imul edi, eax
mov word [esp + 0x38], cx
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 0xb]
add di, ax
movzx eax, di
mov dword [esp + 0x28], eax
mov al, byte [ecx + 0xc]
mov cl, byte [ecx + 0xd]
mov byte [esp + 0x11], cl
movzx ecx, al
mov byte [esp + 0x13], al
mov eax, 0x100
imul ecx, eax
mov al, byte [esp + 0x11]
movzx eax, al
mov word [esp + 0x3a], di
add cx, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
mov word [esp + 0x3c], cx
mov cl, byte [eax + 0xe]
mov al, byte [eax + 0xf]
mov byte [esp + 0x12], cl
mov byte [esp + 0x10], al
mov eax, 0x100
movzx ecx, cl
imul ecx, eax
mov al, byte [esp + 0x10]
movzx eax, al
add cx, ax
mov word [esp + 0x3e], cx
test dx, dx
jne 0x4180e7
cmp word [esp + 0x18], si
jne 0x4180e7
cmp word [esp + 0x1c], si
jne 0x4180e7
cmp word [esp + 0x20], si
jne 0x4180e7
cmp word [esp + 0x24], si
jne 0x4180e7
cmp word [esp + 0x28], si
jne 0x418130
cmp word [esp + 0x2c], si
je 0x4180e7
test cx, cx
jne 0x41813a
xor eax, eax
nop dword [eax]
cmp word [esp + eax*2 + 0x30], 0
mov edx, eax
jne 0x4181cc
inc eax
mov ecx, 1
cmp eax, 8
jge 0x41811f
nop dword [eax]
cmp word [esp + eax*2 + 0x30], 0
jne 0x41811f
inc eax
inc ecx
cmp eax, 8
jl 0x418110
cmp ecx, esi
cmovle edx, ebx
cmovle ecx, esi
mov ebx, edx
mov esi, ecx
jmp 0x4181cd
mov eax, 0xffff
cmp di, ax
jne 0x4180e7
movzx eax, byte [esp + 0x10]
movzx ecx, byte [esp + 0x12]
movzx edx, byte [esp + 0x11]
movzx esi, byte [esp + 0x13]
push eax
push ecx
push edx
push esi
test di, di
jne 0x41816d
push str.::_d._d._d._d
lea eax, [esp + 0x54]
push 0x40
push eax
call fcn.00417e10
add esp, 0x1c
jmp 0x418185
movzx eax, di
push eax
push str.::_x:_d._d._d._d
lea eax, [esp + 0x58]
push 0x40
push eax
call fcn.00417e10
add esp, 0x20
lea ecx, [esp + 0x40]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418190
mov eax, dword [esp + 0x94]
sub ecx, edx
cmp ecx, eax
ja 0x418263
push eax
lea eax, [esp + 0x44]
push eax
push ebp
call fcn.00423790
add esp, 0xc
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x70]
xor ecx, esp
call fcn.0042eefa
add esp, 0x74
ret
inc eax
cmp eax, 8
jl 0x4180f0
or eax, 0xffffffff
lea edi, [esp + 0x40]
cmp esi, 1
cmovle ebx, eax
xor esi, esi
movzx eax, word [esp + esi*2 + 0x30]
test ax, ax
jne 0x418215
cmp ebx, esi
jne 0x418215
test esi, esi
jne 0x4181fb
mov byte [edi], 0x3a
inc edi
mov byte [edi], 0x3a
inc edi
cmp esi, 8
jge 0x418212
cmp word [esp + esi*2 + 0x30], 0
jne 0x418212
inc esi
cmp esi, 8
jl 0x418204
dec esi
jmp 0x418247
push eax
lea eax, [esp + 0x84]
push 0x460730
sub eax, edi
push eax
push edi
call fcn.00417e10
mov ecx, edi
add esp, 0x10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418233
sub ecx, edx
add edi, ecx
cmp esi, 7
je 0x418247
mov byte [edi], 0x3a
inc edi
inc esi
cmp esi, 8
jl 0x4181e5
lea ecx, [esp + 0x40]
mov byte [edi], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x418257
jmp 0x418197
mov ecx, dword [esp + 0x80]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0042eefa
add esp, 0x74
ret