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

Disassembly:
sub esp, 0x30
push ebx
push ebp
push esi
mov esi, dword [esp + 0x4c]
push edi
xor edi, edi
cmp esi, edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
je 0x40d160
cmp dword [esi + 0x1120], 0xc0dedbad
jne 0x40d160
mov eax, dword [esi + 8]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x50], ebx
jne 0x40c3a3
mov eax, dword [esi + 0x24]
cmp eax, 2
jle 0x40c3a3
cmp eax, 0xe
jl 0x40d127
mov ebp, dword [esp + 0x44]
push 1
push ebp
call fcn.0040d1e0
add esp, 8
test eax, eax
je 0x40c3bf
push ebp
call fcn.0040e060
add esp, 4
mov ecx, dword [esi + 8]
cmp ecx, ebx
je 0x40c3d5
mov eax, dword [esi + 0x24]
cmp eax, 2
jle 0x40c3d5
cmp eax, 0xf
jge 0x40c3d5
mov dword [ecx], esi
cmp dword [esi + 8], ebx
je 0x40c554
mov eax, dword [esi + 0x24]
cmp eax, 2
jl 0x40c554
cmp eax, 0xf
jge 0x40c554
xor ecx, ecx
cmp eax, 8
setle cl
lea edx, [esp + 0x48]
push ecx
push edx
push esi
call fcn.00412b00
add esp, 0xc
cmp edx, ebx
jg 0x40c554
jl 0x40c41c
cmp eax, ebx
jae 0x40c554
mov eax, dword [esi + 0x24]
cmp eax, 3
jne 0x40c456
mov eax, dword [esi + 0xcbc]
mov ecx, dword [esi + 0xcb8]
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
call fcn.004165c0
push edx
push eax
push str.Resolving_timed_out_after__I64d_milliseconds
push esi
call fcn.0040e1d0
add esp, 0x20
jmp 0x40c522
cmp eax, 4
jne 0x40c48d
mov ecx, dword [esi + 0xcbc]
mov edx, dword [esi + 0xcb8]
mov eax, dword [esp + 0x4c]
push ecx
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
call fcn.004165c0
push edx
push eax
push str.Connection_timed_out_after__I64d_milliseconds
push esi
call fcn.0040e1d0
add esp, 0x20
jmp 0x40c522
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x8c]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
je 0x40c4e4
mov edx, dword [esi + 0xcbc]
push ecx
mov ecx, dword [esi + 0x98]
push eax
mov eax, dword [esi + 0x9c]
push eax
mov eax, dword [esi + 0xcb8]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x5c]
push eax
push ecx
push edx
call fcn.004165c0
add esp, 0x10
push edx
push eax
push str.Operation_timed_out_after__I64d_milliseconds_with__I64d_out_of__I64d_bytes_received
push esi
call fcn.0040e1d0
add esp, 0x20
jmp 0x40c522
mov eax, dword [esi + 0x9c]
mov ecx, dword [esi + 0x98]
mov edx, dword [esi + 0xcbc]
push eax
mov eax, dword [esi + 0xcb8]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push eax
push ecx
push edx
call fcn.004165c0
add esp, 0x10
push edx
push eax
push str.Operation_timed_out_after__I64d_milliseconds_with__I64d_bytes_received
push esi
call fcn.0040e1d0
add esp, 0x18
cmp dword [esi + 0x24], 8
jle 0x40c53e
mov eax, dword [esi + 8]
push 2
push eax
call fcn.00414270
add esp, 8
mov dword [esp + 0x10], 1
mov edi, 0x1c
push 1
push edi
push esi
call fcn.0040b8e0
add esp, 0xc
jmp case.0x40c560.1
mov eax, dword [esi + 0x24]
cmp eax, 0x10
ja case.default.0x40c560
jmp dword [eax*4 + 0x40d170]
push esi
call fcn.00436740
mov edi, eax
add esp, 4
cmp edi, ebx
jne case.0x40c560.1
push 2
push esi
call fcn.0040b700
push 1
push esi
call fcn.0041b3d0
add esp, 0x10
mov dword [esp + 0x50], 0xffffffff
jmp case.0x40c560.1
push 2
push esi
call fcn.0041b3d0
mov eax, dword [esi + 0x630]
add esp, 8
cmp eax, ebx
je 0x40c5bd
cdq
push 9
push edx
push eax
push esi
call fcn.0040dd50
add esp, 0x10
mov eax, dword [esi + 0x634]
cmp eax, ebx
je 0x40c5d5
cdq
push 2
push edx
push eax
push esi
call fcn.0040dd50
add esp, 0x10
lea ecx, [esp + 0x14]
lea edx, [esp + 0x2c]
push ecx
push edx
push esi
call fcn.00407c30
mov edi, eax
add esp, 0xc
cmp edi, 0x59
jne 0x40c613
push 1
push esi
call fcn.0040b700
mov ecx, dword [ebp + 0x28]
lea eax, [esi + 0xc]
push eax
push esi
add ebp, 0x24
push ecx
push ebp
call fcn.00431cf0
add esp, 0x18
xor edi, edi
jmp case.0x40c560.1
cmp dword [esi + 0x1024], ebx
je 0x40c632
push str.Transfer_was_pending__now_try_another_n
push esi
call fcn.0040e110
mov edx, dword [esi + 0x78]
push edx
call fcn.0040e060
add esp, 0xc
cmp edi, ebx
jne case.0x40c560.1
cmp dword [esp + 0x2c], ebx
je 0x40c647
push 3
jmp 0x40d002
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], 0xffffffff
cmp eax, ebx
je 0x40c65e
push 8
jmp 0x40d002
mov eax, dword [esi + 8]
push eax
call fcn.00437c40
add esp, 4
test eax, eax
je 0x40c675
push 5
jmp 0x40d002
push 4
jmp 0x40d002
mov edi, dword [esi + 8]
mov dword [esp + 0x18], ebx
cmp dword [edi + 0x52c], ebx
je 0x40c693
mov ebp, dword [edi + 0x34c]
jmp 0x40c6a9
cmp dword [edi + 0x520], ebx
je 0x40c6a3
mov ebp, dword [edi + 0x31c]
jmp 0x40c6a9
mov ebp, dword [edi + 0x304]
mov ecx, dword [edi + 0x364]
push ecx
push ebp
push edi
call fcn.00434420
add esp, 0xc
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x40c6eb
push ebp
push 0xa05be4
mov dword [edi + 0x764], eax
mov dword [edi + 0x770], 1
push esi
xor edi, edi
call fcn.0040e110
mov eax, dword [esp + 0x24]
add esp, 0xc
cmp eax, ebx
jne 0x40c6fe
mov eax, dword [esi + 8]
lea edx, [esp + 0x18]
push edx
push eax
call fcn.00434fa0
add esp, 8
mov edi, eax
mov ecx, dword [esp + 0x44]
push esi
push ecx
call fcn.0040d550
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, ebx
je 0x40c763
mov eax, dword [esi + 8]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.00435000
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x40c730
mov dword [esi + 8], ebx
jmp 0x40c763
mov eax, dword [esp + 0x14]
mov dword [esp + 0x50], 0xffffffff
cmp eax, ebx
je 0x40c744
push 8
jmp 0x40c75a
mov ecx, dword [esi + 8]
push ecx
call fcn.00437c40
add esp, 4
test eax, eax
je 0x40c758
push 5
jmp 0x40c75a
push 4
push esi
call fcn.0040b700
add esp, 8
cmp edi, ebx
je case.0x40c560.1
mov dword [esp + 0x10], 1
jmp case.0x40c560.1
mov eax, dword [esi + 8]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.0042e650
mov edi, eax
mov eax, dword [esi + 8]
add esp, 8
cmp dword [eax + 0x570], ebx
je 0x40c7b8
push ebx
push ebx
push esi
mov dword [esp + 0x5c], 0xffffffff
xor edi, edi
call fcn.0040b8e0
push 2
push esi
call fcn.0040b700
add esp, 0x14
jmp case.0x40c560.1
cmp edi, ebx
jne 0x40c76b
cmp dword [eax + 0x358], 2
jne 0x40c7d1
cmp dword [eax + 0x504], ebx
je case.0x40c560.1
push eax
call fcn.00437c20
add esp, 4
test eax, eax
je case.0x40c560.1
mov dword [esp + 0x50], 0xffffffff
push 6
jmp 0x40d002
mov edx, dword [esi + 8]
lea ecx, [esp + 0x30]
push ecx
push ebx
push edx
call fcn.00412ec0
mov edi, eax
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp eax, ebx
je 0x40c857
cmp edi, ebx
jne 0x40c85f
mov eax, dword [esi + 8]
cmp dword [eax + 0x358], 2
jne 0x40c825
cmp dword [eax + 0x504], ebx
je 0x40c832
push eax
call fcn.00437c40
add esp, 4
test eax, eax
je 0x40c839
push 5
jmp 0x40d002
mov eax, dword [esi + 8]
mov dword [esp + 0x50], 0xffffffff
mov ecx, dword [eax + 0x550]
neg ecx
sbb ecx, ecx
add ecx, 6
push ecx
jmp 0x40d002
cmp edi, ebx
je case.0x40c560.1
push esi
call fcn.00404ad0
push 1
push edi
push esi
call fcn.0040b8e0
add esp, 0x10
mov dword [esp + 0x10], 1
jmp case.0x40c560.1
mov eax, dword [esi + 8]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.0040d320
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x40c85f
cmp dword [esp + 0x14], ebx
jne 0x40c8c3
push 7
jmp 0x40d002
mov edx, dword [esi + 8]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.0040d2a0
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x40c85f
cmp dword [esp + 0x14], ebx
je case.0x40c560.1
push 8
jmp 0x40ceaf
cmp dword [esi + 0xbb0], ebx
je 0x40c8f6
mov eax, dword [esi + 8]
push ebx
push eax
call fcn.00414270
push 0xe
push esi
call fcn.0040b700
add esp, 0x10
xor edi, edi
mov dword [esp + 0x50], 0xffffffff
jmp case.0x40c560.1
lea ecx, [esp + 0x1c]
push ecx
push esi
call fcn.0040d200
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x40c982
cmp dword [esp + 0x1c], ebx
jne 0x40c95c
cmp dword [esi + 0x1008], ebx
je 0x40c948
mov eax, dword [esi + 0x1030]
cmp eax, 7
je 0x40c928
cmp eax, 5
jne 0x40c948
push ebx
push ebx
push esi
call fcn.0040b8e0
push 0xe
push esi
call fcn.0040b700
add esp, 0x14
mov dword [esp + 0x50], 0xffffffff
jmp case.0x40c560.1
push 9
push esi
call fcn.0040b700
add esp, 8
mov dword [esp + 0x50], ebx
jmp case.0x40c560.1
mov edx, dword [esi + 8]
cmp dword [edx + 0x544], ebx
je 0x40c97b
push 0xa
push esi
call fcn.0040b700
add esp, 8
mov dword [esp + 0x50], ebx
jmp case.0x40c560.1
push 0xb
jmp 0x40ceaf
cmp edi, 0x37
jne 0x40ca44
mov eax, dword [esi + 8]
cmp dword [eax + 0x518], ebx
je 0x40ca44
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], ebx
push ecx
push eax
call fcn.00436c30
add esp, 8
cmp eax, ebx
je 0x40c9ba
mov edi, eax
mov dword [esp + 0x10], 1
push esi
call fcn.00404ad0
push ebx
push edi
push esi
call fcn.0040b8e0
mov ecx, dword [esp + 0x28]
add esp, 0x10
cmp ecx, ebx
je 0x40ca29
cmp eax, ebx
je 0x40c9f1
cmp eax, 0x37
je 0x40c9f1
mov edx, dword [esp + 0x18]
mov edi, eax
push edx
call dword [0xa05294]
add esp, 4
jmp case.0x40c560.1
push 2
push ecx
push esi
call fcn.00436960
add esp, 0xc
cmp eax, ebx
jne 0x40c9dc
push 2
push esi
call fcn.0040b700
mov edx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x50], 0xffffffff
xor edi, edi
push edx
call dword [0xa05294]
add esp, 4
jmp case.0x40c560.1
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], 1
push edx
call dword [0xa05294]
add esp, 4
jmp case.0x40c560.1
push esi
call fcn.00404ad0
mov eax, dword [esi + 8]
add esp, 4
cmp eax, ebx
je 0x40ca5f
push ebx
push edi
push esi
call fcn.0040b8e0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x40c560.1
mov ecx, dword [esi + 8]
lea eax, [esp + 0x1c]
push eax
push ecx
call fcn.0040d2e0
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x40cad6
cmp dword [esp + 0x1c], ebx
je case.0x40c560.1
mov edx, dword [esi + 8]
mov eax, dword [edx + 0x544]
neg eax
sbb eax, eax
add eax, 0xb
push eax
jmp 0x40ceaf
mov edx, dword [esi + 8]
lea ecx, [esp + 0x34]
push ecx
push edx
call fcn.0040d260
mov edi, eax
add esp, 8
cmp edi, ebx
jne 0x40cad6
mov eax, dword [esp + 0x34]
cmp eax, ebx
je 0x40c953
dec eax
neg eax
sbb eax, eax
and al, 0xfe
add eax, 0xb
push eax
jmp 0x40ceaf
push esi
call fcn.00404ad0
push ebx
jmp 0x40c867
mov eax, dword [esi + 8]
cmp dword [eax + 0x57c], ebx
je 0x40caf6
push ebp
call fcn.0040e060
add esp, 4
mov eax, dword [esi + 8]
or ebp, 0xffffffff
cmp dword [eax + 0x5c0], ebp
jne 0x40cb40
cmp dword [eax + 0x5c4], ebp
jne 0x40cb40
cmp dword [esi + 0x1008], ebx
je 0x40cb2c
mov ecx, dword [eax + 0x5a8]
mov eax, dword [ecx + 0x44]
test ah, 0x10
jne 0x40cb2c
mov dword [esi + 0x1030], 7
push 0xe
push esi
call fcn.0040b700
add esp, 8
mov dword [esp + 0x50], ebp
jmp case.0x40c560.1
push 0xc
push esi
call fcn.0040b700
add esp, 8
mov dword [esp + 0x50], ebp
jmp case.0x40c560.1
mov edx, dword [esi + 8]
push edx
call fcn.0041b860
add esp, 4
test eax, eax
je 0x40cb6e
mov edi, 0x2a
jmp case.0x40c560.1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push eax
push ecx
push esi
call fcn.004379c0
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne case.0x40c560.1
mov eax, dword [esi + 0x664]
mov ecx, dword [esi + 0x660]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x3c], ebx
jl 0x40cbeb
jg 0x40cba7
cmp ecx, ebx
jbe 0x40cbeb
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esi + 0xcd4]
push edx
mov edx, dword [esi + 0xcd0]
push edx
mov edx, dword [esi + 0xc54]
push eax
mov eax, dword [esi + 0xcdc]
push ecx
mov ecx, dword [esi + 0xcd8]
push eax
mov eax, dword [esi + 0xc50]
push ecx
push edx
push eax
call fcn.0041b5a0
add esp, 0x28
mov ebx, eax
mov dword [esp + 0x3c], edx
mov ecx, dword [esi + 0x66c]
mov ebp, dword [esi + 0x668]
xor eax, eax
xor edx, edx
test ecx, ecx
jl 0x40cc43
jg 0x40cc05
test ebp, ebp
jbe 0x40cc43
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push edx
mov edx, dword [esi + 0xce4]
push eax
mov eax, dword [esi + 0xce0]
push edx
mov edx, dword [esi + 0xce8]
push eax
mov eax, dword [esi + 0xc4c]
push ecx
mov ecx, dword [esi + 0xcec]
push ebp
push ecx
mov ecx, dword [esi + 0xc48]
push edx
push eax
push ecx
call fcn.0041b5a0
add esp, 0x28
mov ecx, dword [esp + 0x3c]
mov ebp, ebx
or ebp, ecx
jne 0x40cc73
mov ebp, eax
or ebp, edx
jne 0x40cc73
push 0xc
push esi
call fcn.0040b700
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push edx
push eax
push esi
call fcn.0041b6a0
add esp, 0x14
jmp case.0x40c560.1
cmp ecx, edx
jl 0x40cc8f
jg 0x40cc7d
cmp ebx, eax
jb 0x40cc8f
push 0xa
push ecx
push ebx
push esi
call fcn.0040dd50
add esp, 0x10
jmp case.0x40c560.1
push 0xa
push edx
push eax
push esi
call fcn.0040dd50
add esp, 0x10
jmp case.0x40c560.1
mov eax, dword [esi + 0x664]
mov ecx, dword [esi + 0x660]
cmp eax, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
jl 0x40cd11
jg 0x40cccb
cmp ecx, ebx
jbe 0x40cd11
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esi + 0xcd4]
push edx
mov edx, dword [esi + 0xcd0]
push edx
mov edx, dword [esi + 0xc54]
push eax
mov eax, dword [esi + 0xcdc]
push ecx
mov ecx, dword [esi + 0xcd8]
push eax
mov eax, dword [esi + 0xc50]
push ecx
push edx
push eax
call fcn.0041b5a0
add esp, 0x28
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 0x66c]
mov ecx, dword [esi + 0x668]
xor ebx, ebx
xor ebp, ebp
test eax, eax
jl 0x40cd6d
jg 0x40cd2b
test ecx, ecx
jbe 0x40cd6d
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esi + 0xce4]
push edx
mov edx, dword [esi + 0xce0]
push edx
mov edx, dword [esi + 0xc4c]
push eax
mov eax, dword [esi + 0xcec]
push ecx
mov ecx, dword [esi + 0xce8]
push eax
mov eax, dword [esi + 0xc48]
push ecx
push edx
push eax
call fcn.0041b5a0
add esp, 0x28
mov ebx, eax
mov ebp, edx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
or ecx, eax
jne 0x40cf5c
mov edx, ebx
or edx, ebp
jne 0x40cf5c
mov edx, dword [esi + 8]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x20]
push eax
push ecx
push esi
push edx
call fcn.00435730
mov edi, eax
mov eax, dword [esp + 0x30]
xor ebp, ebp
add esp, 0x10
cmp eax, ebp
jne 0x40cdb6
cmp edi, 0x38
je 0x40cdb6
cmp edi, 0x5c
jne 0x40cdec
jmp 0x40cdf4
mov ecx, dword [esi + 8]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.00436c30
add esp, 8
cmp eax, ebp
jne 0x40cde6
mov eax, dword [esp + 0x18]
xor ebx, ebx
cmp eax, ebp
setne bl
cmp ebx, ebp
je 0x40cdf0
xor edi, edi
mov dword [esp + 0x20], 1
jmp 0x40ce34
cmp edi, ebp
jne 0x40cdf4
mov edi, eax
mov ebx, dword [esp + 0x24]
cmp edi, ebp
je 0x40ce2a
mov eax, dword [esi + 8]
mov edx, dword [eax + 0x5a8]
test byte [edx + 0x44], 2
jne 0x40ce13
cmp edi, 0x5c
je 0x40ce13
push 2
push eax
call fcn.00414270
add esp, 8
push esi
call fcn.00404ad0
push 1
push edi
push esi
call fcn.0040b8e0
add esp, 0x10
jmp case.0x40c560.1
cmp dword [esp + 0x20], ebp
je 0x40cf36
push esi
call fcn.00404ad0
mov eax, dword [esi + 0x11c]
add esp, 4
cmp eax, ebp
jne 0x40cec5
cmp ebx, ebp
jne 0x40ceee
cmp dword [esi + 0x118], ebp
je 0x40cead
mov eax, dword [esp + 0x18]
push eax
call dword [0xa05294]
mov eax, dword [esi + 0x118]
push 1
push eax
push esi
mov dword [esp + 0x28], eax
mov dword [esi + 0x118], ebp
call fcn.00436960
mov ecx, dword [esp + 0x28]
mov edi, eax
push ecx
call dword [0xa05294]
add esp, 0x14
cmp edi, ebp
je 0x40cead
push 1
push edi
push esi
mov dword [esp + 0x1c], 1
call fcn.0040b8e0
mov edi, eax
add esp, 0xc
cmp edi, ebp
jne case.0x40c560.1
push 0xe
push esi
call fcn.0040b700
add esp, 8
mov dword [esp + 0x50], 0xffffffff
jmp case.0x40c560.1
cmp ebx, ebp
jne 0x40ceee
mov edx, dword [esp + 0x18]
push edx
call dword [0xa05294]
mov eax, dword [esi + 0x11c]
add esp, 4
mov dword [esp + 0x18], eax
mov dword [esi + 0x11c], ebp
mov edi, 3
jmp 0x40cef3
mov edi, 2
push ebp
push ebp
push esi
call fcn.0040b8e0
mov ecx, dword [esp + 0x24]
push edi
push ecx
push esi
call fcn.00436960
mov edi, eax
add esp, 0x18
cmp edi, ebp
jne 0x40cf23
push 2
push esi
call fcn.0040b700
add esp, 8
mov dword [esp + 0x50], 0xffffffff
mov edx, dword [esp + 0x18]
push edx
call dword [0xa05294]
add esp, 4
jmp case.0x40c560.1
cmp dword [esp + 0x28], ebp
je case.0x40c560.1
push 7
push 0
push 0
push esi
call fcn.0040dd50
add esp, 0x10
mov dword [esp + 0x50], 0
jmp case.0x40c560.1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push eax
push ecx
push esi
call fcn.0041b6a0
push 0xd
push esi
call fcn.0040b700
mov eax, dword [esp + 0x50]
add esp, 0x14
cmp eax, ebp
jl 0x40cf9e
jg 0x40cf87
cmp dword [esp + 0x38], ebx
jb 0x40cf9e
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
push 0xa
push edx
push eax
push esi
call fcn.0040dd50
add esp, 0x10
jmp case.0x40c560.1
push 0xa
push ebp
push ebx
push esi
call fcn.0040dd50
add esp, 0x10
jmp case.0x40c560.1
mov eax, dword [esi + 8]
mov dword [esp + 0x50], 0xffffffff
cmp eax, ebx
je 0x40cfec
cmp dword [eax + 0x57c], ebx
je 0x40cfcd
push ebp
call fcn.0040e060
add esp, 4
push ebx
push edi
push esi
call fcn.0040b8e0
add esp, 0xc
cmp edi, ebx
jne 0x40cfde
mov edi, eax
cmp dword [esi + 8], ebx
je 0x40cfec
push esi
call fcn.0040bbf0
add esp, 4
cmp dword [esi + 0x1008], ebx
je 0x40d000
cmp dword [esi + 0x1030], 7
je 0x40d000
push ebx
jmp 0x40d002
push 0xf
push esi
call fcn.0040b700
add esp, 8
cmp dword [esi + 0x24], 0xf
jge 0x40d0be
test edi, edi
je 0x40d07d
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0040e060
mov ebp, dword [esi + 8]
add esp, 4
test ebp, ebp
je 0x40d05e
mov eax, dword [esp + 0x10]
test eax, eax
je 0x40d06d
push esi
call fcn.0040bbf0
xor edx, edx
cmp edi, 0x1c
sete dl
push edx
push ebp
push esi
call fcn.004072c0
add esp, 0x10
push 0xf
push esi
call fcn.0040b700
add esp, 8
or ebp, 0xffffffff
jmp 0x40d0c2
cmp dword [esi + 0x24], 2
jne 0x40d06d
push esi
call fcn.00404ad0
add esp, 4
push 0xf
push esi
call fcn.0040b700
add esp, 8
or ebp, 0xffffffff
jmp 0x40d0c2
mov eax, dword [esi + 8]
test eax, eax
je 0x40d0be
push eax
call fcn.0041b860
add esp, 4
test eax, eax
je 0x40d0be
mov eax, dword [esi + 8]
push 2
push eax
mov edi, 0x2a
call fcn.00414270
mov ebp, dword [esi + 0x24]
xor ecx, ecx
cmp ebp, 0xe
setge cl
add ecx, 0xe
push ecx
push esi
call fcn.0040b700
add esp, 0x10
or ebp, 0xffffffff
jmp 0x40d0c2
mov ebp, dword [esp + 0x50]
cmp dword [esi + 0x24], 0xf
jne 0x40d106
mov eax, dword [esi + 0xb08]
test eax, eax
je 0x40d0db
push edi
push esi
call eax
add esp, 8
jmp 0x40d0fb
mov edx, dword [esp + 0x44]
lea eax, [esi + 0x2c]
push eax
push edx
mov dword [eax + 0xc], 1
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
call fcn.0040d1c0
add esp, 8
mov ebp, eax
push 0x10
push esi
call fcn.0040b700
add esp, 8
cmp ebp, 0xffffffff
je 0x40c381
mov eax, dword [esp + 0x44]
push 0
push eax
call fcn.0040d1e0
add esp, 8
test eax, eax
je 0x40d146
jmp 0x40c381
mov ecx, dword [esi + 0x24]
push ecx
push str.In_state__d_with_no_conn__bail_out__n
push esi
call fcn.0040e1d0
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x30
ret
mov dword [esi + 0x28], edi
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
mov dword [esi + 0x28], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x30
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x30
ret