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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x30
mov ebx, dword [esp + 0x40]
cmp byte [ebx], 0x63
je 0x403892
mov eax, dword [ebx + 0x60]
call fcn.00401450
test eax, eax
mov esi, eax
je 0x403f4d
mov ecx, dword [ebx + 0x8c]
test ecx, ecx
jne 0x403ab5
mov dword [esp + 4], 0x413484
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40347a
mov eax, dword [ebx + 0x168]
test eax, eax
jne 0x40346b
jmp 0x403883
mov eax, dword [eax + 0x20]
test eax, eax
je 0x403883
cmp dword [eax], 1
jne 0x403460
mov dword [ebx + 0xc], eax
mov eax, ebx
call fcn.00401380
mov dword [esp + 4], 0x413488
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4034ba
mov eax, dword [ebx + 0x168]
test eax, eax
jne 0x4034ab
jmp 0x403874
mov eax, dword [eax + 0x20]
test eax, eax
je 0x403874
cmp dword [eax], 2
jne 0x4034a0
mov dword [ebx + 0xc], eax
mov eax, ebx
call fcn.00401380
mov dword [esp + 4], str.sctp
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4034fa
mov eax, dword [ebx + 0x168]
test eax, eax
jne 0x4034eb
jmp 0x403865
mov eax, dword [eax + 0x20]
test eax, eax
je 0x403865
cmp dword [eax], 0xc
jne 0x4034e0
mov dword [ebx + 0xc], eax
mov eax, ebx
call fcn.00401380
mov dword [esp + 4], str.omit
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x403514
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x30], eax
mov dword [esp + 4], str.server_affinity
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40352e
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x40], eax
mov dword [esp + 4], str.time
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x403548
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x34], eax
mov dword [esp + 4], 0x4134ab
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40356e
mov edx, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x3c], edx
mov dword [ecx + 0x38], eax
mov dword [esp + 4], str.blockcount
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x403594
mov edx, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x44], edx
mov dword [ecx + 0x40], eax
mov dword [esp + 4], 0x4134ba
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4035b4
mov edx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [edx + 0x24], eax
mov dword [esp + 4], str.nodelay
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4035cf
mov dword [ebx + 0x78], 1
mov dword [esp + 4], str.parallel
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4035ec
mov eax, dword [eax + 0x18]
mov dword [ebx + 0x120], eax
mov dword [esp + 4], str.reverse
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40361b
mov edx, dword [ebx + 4]
xor eax, eax
mov dword [ebx + 0x7c], 1
test edx, edx
sete al
mov dword [ebx + 4], eax
mov eax, ebx
call fcn.00401380
mov dword [esp + 4], str.window
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40363b
mov edx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [edx + 4], eax
mov dword [esp + 4], 0x4134de
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40365b
mov edx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [edx + 8], eax
mov dword [esp + 4], str.bandwidth
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x403681
mov edx, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x14], edx
mov dword [ecx + 0x10], eax
mov dword [esp + 4], str.fqrate
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4036a7
mov edx, dword [eax + 0x1c]
mov ecx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x1c], edx
mov dword [ecx + 0x18], eax
mov dword [esp + 4], str.burst
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4036c7
mov edx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [edx + 0x20], eax
mov dword [esp + 4], 0x4134f9
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4036e7
mov edx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [edx + 0x2c], eax
mov dword [esp + 4], str.flowlabel
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x403707
mov edx, dword [ebx + 0x164]
mov eax, dword [eax + 0x18]
mov dword [edx + 0x30], eax
mov dword [esp + 4], str.title
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x403729
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_strdup
mov dword [ebx + 0x44], eax
mov dword [esp + 4], str.congestion
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40374b
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_strdup
mov dword [ebx + 0x48], eax
mov dword [esp + 4], str.congestion_used
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40376d
mov eax, dword [eax + 0x10]
mov dword [esp], eax
call sub.cygwin1.dll_strdup
mov dword [ebx + 0x4c], eax
mov dword [esp + 4], 0x413518
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x40378b
mov dword [ebx + 0x90], 1
mov dword [esp + 4], 0x41352a
mov dword [esp], esi
call fcn.00410490
test eax, eax
je 0x4037a9
mov dword [ebx + 0x94], 1
mov eax, dword [ebx + 4]
test eax, eax
jne 0x403840
mov dword [esp], esi
call fcn.00410240
mov eax, dword [ebx + 0xc]
mov dword [esp], ebx
call dword [eax + 0xc]
test eax, eax
js 0x403e00
mov esi, eax
mov ecx, eax
mov edx, 1
shr esi, 5
shl edx, cl
mov byte [esp + 0x2c], 0xa
or dword [ebx + esi*4 + 0xa8], edx
mov edx, eax
mov dword [ebx + 0x68], eax
cmp dword [ebx + 0xa4], eax
lea eax, [esp + 0x2c]
mov byte [ebx + 0x10], 0xa
cmovge edx, dword [ebx + 0xa4]
mov dword [ebx + 0xa4], edx
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x60]
xor ebx, ebx
mov dword [esp], eax
call fcn.0040d6f0
test eax, eax
js 0x403ad2
add esp, 0x30
mov eax, ebx
pop ebx
pop esi
pop edi
ret
mov eax, dword [ebx + 0xc]
cmp dword [eax], 1
jne 0x4037b4
call fcn.0040da80
test eax, eax
je 0x4037b4
mov dword [ebx + 8], 1
jmp 0x4037b4
mov dword [0x41cb64], 0x83
jmp 0x4034fa
mov dword [0x41cb64], 0x83
jmp 0x4034ba
mov dword [0x41cb64], 0x83
jmp 0x40347a
call fcn.00410a40
test eax, eax
mov esi, eax
je 0x403f61
mov eax, dword [ebx + 0xc]
mov eax, dword [eax]
cmp eax, 1
je 0x403ee5
cmp eax, 2
je 0x403f03
cmp eax, 0xc
je 0x403ec7
fild dword [ebx + 0x30]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.omit
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov eax, dword [ebx + 0x40]
cmp eax, 0xffffffff
je 0x40390c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.server_affinity
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov eax, dword [ebx + 0x34]
test eax, eax
jne 0x403c70
mov ecx, dword [ebx + 0x164]
mov edx, dword [ecx + 0x3c]
mov eax, dword [ecx + 0x38]
mov edi, edx
or edi, eax
jne 0x403dc0
mov edx, dword [ecx + 0x44]
mov eax, dword [ecx + 0x40]
mov edi, edx
or edi, eax
jne 0x403d80
mov eax, dword [ecx + 0x24]
test eax, eax
jne 0x403c40
mov eax, dword [ebx + 0x78]
test eax, eax
jne 0x403c20
fild dword [ebx + 0x120]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.parallel
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov eax, dword [ebx + 0x7c]
test eax, eax
jne 0x403c00
mov ecx, dword [ebx + 0x164]
mov eax, dword [ecx + 4]
test eax, eax
jne 0x403bd0
mov eax, dword [ecx + 8]
test eax, eax
jne 0x403ba0
mov edx, dword [ecx + 0x14]
mov eax, dword [ecx + 0x10]
mov edi, edx
or edi, eax
jne 0x403b60
mov edx, dword [ecx + 0x1c]
mov eax, dword [ecx + 0x18]
mov edi, edx
or edi, eax
jne 0x403b20
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x403af0
mov eax, dword [ecx + 0x2c]
test eax, eax
jne 0x403d50
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x403d20
mov eax, dword [ebx + 0x44]
test eax, eax
je 0x403a00
mov dword [esp], eax
call fcn.004109e0
mov dword [esp + 4], str.title
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov eax, dword [ebx + 0x48]
test eax, eax
je 0x403a23
mov dword [esp], eax
call fcn.004109e0
mov dword [esp + 4], str.congestion
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov eax, dword [ebx + 0x4c]
test eax, eax
je 0x403a46
mov dword [esp], eax
call fcn.004109e0
mov dword [esp + 4], str.congestion_used
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov eax, dword [ebx + 0x90]
test eax, eax
jne 0x403cf0
mov eax, dword [ebx + 0x94]
test eax, eax
jne 0x403cc0
mov dword [esp], str.3.1.5
call fcn.004109e0
mov dword [esp + 4], str.client_version
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov edi, dword [ebx + 0x8c]
test edi, edi
jne 0x403ca0
mov eax, dword [ebx + 0x60]
mov edx, esi
xor ebx, ebx
call fcn.004013c0
test eax, eax
js 0x403eb3
mov dword [esp], esi
call fcn.00410240
add esp, 0x30
mov eax, ebx
pop ebx
pop esi
pop edi
ret
mov dword [esp], eax
call fcn.004103b0
mov dword [esp], str.get_parameters:_n_s_n
mov dword [esp + 4], eax
call sub.cygwin1.dll_printf
jmp 0x403433
mov ebx, 0xffffffff
mov dword [0x41cb64], 0x6f
add esp, 0x30
mov eax, ebx
pop ebx
pop esi
pop edi
ret
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.burst
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x4039c7
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test edx, edx
fild qword [esp + 0x10]
js 0x403f42
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.fqrate
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x4039bc
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test edx, edx
fild qword [esp + 0x10]
js 0x403f37
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.bandwidth
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x4039ac
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], 0x4134de
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x40399c
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.window
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x403991
call fcn.00410940
mov dword [esp + 4], str.reverse
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x403980
call fcn.00410940
mov dword [esp + 4], str.nodelay
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x403953
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], 0x4134ba
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x403948
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.time
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x403917
mov dword [esp], esi
call fcn.004103b0
mov dword [esp], str.send_parameters:_n_s_n
mov dword [esp + 4], eax
call sub.cygwin1.dll_printf
jmp 0x403a90
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], 0x41352a
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x403a62
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], 0x413518
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x403a54
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.flowlabel
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x4039dd
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], 0x4134f9
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x4039d2
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test edx, edx
fild qword [esp + 0x10]
js 0x403f2c
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], str.blockcount
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x40393d
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test edx, edx
fild qword [esp + 0x10]
js 0x403f21
fstp qword [esp]
call fcn.004109a0
mov dword [esp + 4], 0x4134ab
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
mov ecx, dword [ebx + 0x164]
jmp 0x40392d
lea eax, [esp + 0x2b]
mov byte [ebx + 0x10], 0xfe
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov byte [esp + 0x2b], 0xfe
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call fcn.0040d6f0
test eax, eax
js 0x403ad2
lea esi, [esp + 0x2c]
mov eax, dword [0x41cb64]
mov dword [esp + 0xc], 1
bswap eax
mov dword [esp + 8], 4
mov dword [esp + 0x2c], eax
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x60]
mov dword [esp], eax
call fcn.0040d6f0
test eax, eax
js 0x403e9f
call sub.cygwin1.dll___errno
mov eax, dword [eax]
mov dword [esp + 0xc], 1
bswap eax
mov dword [esp + 8], 4
mov dword [esp + 0x2c], eax
mov dword [esp + 4], esi
mov eax, dword [ebx + 0x60]
mov ebx, 0xffffffff
mov dword [esp], eax
call fcn.0040d6f0
test eax, eax
jns 0x403830
mov dword [0x41cb64], 0x6b
mov ebx, 0xffffffff
jmp 0x403830
mov dword [0x41cb64], 0x71
mov ebx, 0xffffffff
jmp 0x403aa4
call fcn.00410940
mov dword [esp + 4], str.sctp
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x4038c1
call fcn.00410940
mov dword [esp + 4], 0x413484
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x4038c1
call fcn.00410940
mov dword [esp + 4], 0x413488
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.00410540
jmp 0x4038c1
fadd dword [0x414034]
jmp 0x403dd4
fadd dword [0x414034]
jmp 0x403d94
fadd dword [0x414034]
jmp 0x403b74
fadd dword [0x414034]
jmp 0x403b34
mov dword [0x41cb64], 0x72
mov ebx, 0xffffffff
jmp 0x403830
mov dword [0x41cb64], 0x71
mov ebx, 0xffffffff
jmp 0x403830