Function at 0x415600
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x2c
push ebx
xor eax, eax
push ebp
mov ebp, dword [esp + 0x3c]
push esi
push edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], eax
cmp ebp, eax
je 0x41679b
cmp dword [ebp + 0x88e4], 0xc0dedbad
jne 0x41679b
xor esi, esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], esi
cmp dword [ebp + 0x87bc], esi
je 0x4156bc
mov eax, dword [ebp + 0x87c4]
push eax
push ebp
push str.Pipe_broke:_handle__p__url___s_n
mov ecx, ebp
call fcn.004140b0
mov eax, dword [ebp + 0xc]
add esp, 0xc
cmp eax, 0x11
jge 0x41568d
cmp eax, 2
je 0x415681
mov dword [ebp + 0xc], 2
mov eax, dword [0x462998]
cmp eax, esi
je 0x415681
push ebp
call eax
add esp, 4
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x44], esi
mov dword [ebp + 0x87bc], esi
mov dword [ebp + 8], esi
mov esi, dword [esp + 0x10]
cmp esi, 0xffffffff
je 0x415635
mov eax, dword [esp + 0x40]
cmp dword [eax + 0x64], 0
jne 0x415635
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
mov dword [ebp + 0x10], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
cmp dword [ebp + 8], esi
lea ebx, [ebp + 8]
mov esi, 2
jne 0x4156d9
mov eax, dword [ebp + 0xc]
cmp eax, esi
jle 0x4156d9
cmp eax, 0x10
jl 0x41676a
mov edi, dword [esp + 0x40]
mov eax, dword [edi + 0x64]
mov dword [edi + 0x64], 0
test eax, eax
je 0x4156f4
push edi
call fcn.00417620
add esp, 4
mov ecx, dword [ebx]
test ecx, ecx
je 0x415708
mov eax, dword [ebp + 0xc]
cmp eax, esi
jle 0x415708
cmp eax, 0x11
jge 0x415708
mov dword [ecx], ebp
cmp dword [ebx], 0
je 0x415891
mov eax, dword [ebp + 0xc]
cmp eax, esi
jl 0x415891
cmp eax, 0x11
jge 0x415891
xor ecx, ecx
cmp eax, 8
setle cl
mov eax, ebp
push ecx
lea ecx, [esp + 0x4c]
call fcn.0041ec40
add esp, 4
test edx, edx
jg 0x415891
jl 0x41574e
test eax, eax
jae 0x415891
mov eax, dword [ebp + 0xc]
cmp eax, 3
jne 0x415789
mov edx, dword [ebp + 0x614]
mov eax, dword [ebp + 0x610]
mov ecx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push eax
push ecx
push edx
call fcn.00421a90
push edx
push eax
push str.Resolving_timed_out_after__ld_milliseconds
mov eax, ebp
call fcn.00414140
add esp, 0x1c
jmp 0x415840
cmp eax, 4
jne 0x4157c1
mov eax, dword [ebp + 0x614]
mov ecx, dword [ebp + 0x610]
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
call fcn.00421a90
push edx
push eax
push str.Connection_timed_out_after__ld_milliseconds
mov eax, ebp
call fcn.00414140
add esp, 0x1c
jmp 0x415840
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x54]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
mov edx, dword [ebp + 0x614]
je 0x41580d
push ecx
mov ecx, dword [ebp + 0x70]
push eax
mov eax, dword [ebp + 0x74]
push eax
mov eax, dword [ebp + 0x610]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x5c]
push eax
push ecx
push edx
call fcn.00421a90
add esp, 0x10
push edx
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_out_of__I64d_bytes_received
mov eax, ebp
call fcn.00414140
add esp, 0x1c
jmp 0x415840
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x70]
push eax
mov eax, dword [ebp + 0x610]
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push eax
push ecx
push edx
call fcn.00421a90
add esp, 0x10
push edx
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_bytes_received
mov eax, ebp
call fcn.00414140
add esp, 0x14
cmp dword [ebp + 0xc], 9
jle 0x415878
mov esi, dword [ebx]
mov eax, dword [esi + 0x310]
mov eax, dword [eax + 0x40]
and eax, 0x200
mov ecx, 0
sete cl
test eax, eax
jne 0x415870
cmp ecx, dword [esi + 0x26c]
je 0x415870
mov dword [esi + 0x26c], ecx
mov dword [esp + 0x14], 1
mov eax, 0x1c
push 1
push ebx
mov dword [esp + 0x4c], eax
call fcn.00414db0
add esp, 8
jmp case.0x41589d.1
mov eax, dword [ebp + 0xc]
cmp eax, 0x12
ja case.default.0x41589d
jmp dword [eax*4 + 0x4167a8]
mov eax, ebp
call fcn.004255e0
mov dword [esp + 0x44], eax
test eax, eax
jne case.0x41589d.1
cmp dword [ebp + 0xc], esi
je 0x4158ce
mov dword [ebp + 0xc], esi
mov eax, dword [0x462998]
test eax, eax
je 0x4158ce
push ebp
call eax
add esp, 4
push 1
mov esi, ebp
call fcn.00426ad0
mov dword [esp + 0x14], 0xffffffff
jmp 0x4165f9
push 2
mov esi, ebp
call fcn.00426ad0
lea ecx, [esp + 0x1c]
add esp, 4
push ecx
lea ebx, [esp + 0x38]
lea edi, [ebp + 8]
mov eax, ebp
call fcn.0041e880
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, 0x59
jne 0x415942
mov eax, 1
cmp dword [ebp + 0xc], eax
je 0x41591c
mov dword [ebp + 0xc], eax
mov edx, dword [esp + 0x40]
mov esi, dword [edx + 0x18]
mov edi, dword [esi + 4]
push ebp
call fcn.00425eb0
add esp, 4
neg eax
sbb eax, eax
and eax, 0xffffffe5
add eax, 0x1b
mov dword [esp + 0x44], eax
jmp case.0x41589d.1
cmp dword [esp + 0x44], 0
jne case.0x41589d.1
mov ebx, dword [ebp + 8]
mov eax, ebp
call fcn.004233b0
mov dword [esp + 0x44], eax
test eax, eax
jne 0x415d0b
cmp dword [esp + 0x34], eax
je 0x41598f
cmp dword [ebp + 0xc], 3
je case.0x41589d.1
mov dword [ebp + 0xc], 3
mov eax, dword [0x46299c]
test eax, eax
je case.0x41589d.1
push ebp
call eax
jmp 0x4165f9
cmp dword [esp + 0x18], 0
mov dword [esp + 0x10], 0xffffffff
je 0x4159bf
mov eax, dword [esp + 0x40]
mov ecx, 1
call fcn.00415170
neg eax
sbb eax, eax
add eax, 9
mov ecx, ebp
call fcn.00414a20
jmp case.0x41589d.1
mov eax, dword [ebp + 8]
cmp dword [eax + 0x57c], 1
jne 0x4159f1
cmp dword [ebp + 0xc], 5
je case.0x41589d.1
mov dword [ebp + 0xc], 5
mov eax, dword [0x4629a4]
test eax, eax
je case.0x41589d.1
push ebp
call eax
jmp 0x4165f9
cmp dword [ebp + 0xc], 4
je case.0x41589d.1
mov dword [ebp + 0xc], 4
mov eax, dword [0x4629a0]
test eax, eax
je case.0x41589d.1
push ebp
call eax
jmp 0x4165f9
mov esi, dword [ebx]
cmp dword [esi + 0x27c], 0
je 0x415a2e
mov ecx, dword [esi + 0xbc]
mov dword [esp + 0x1c], ecx
jmp 0x415a4d
cmp dword [esi + 0x274], 0
je 0x415a43
mov edx, dword [esi + 0xac]
mov dword [esp + 0x1c], edx
jmp 0x415a4d
mov eax, dword [esi + 0x98]
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 0x104]
mov edx, dword [esp + 0x1c]
push ecx
push edx
mov eax, esi
call fcn.00420360
mov edi, eax
add esp, 8
mov dword [esp + 0x2c], edi
test edi, edi
je 0x415a98
mov eax, dword [esp + 0x1c]
push eax
push 0x4646f0
mov ecx, ebp
mov dword [esi + 0x4a8], edi
mov dword [esi + 0x4ac], 1
mov dword [esp + 0x4c], 0
call fcn.004140b0
jmp 0x415aad
mov edx, dword [ebx]
lea ecx, [esp + 0x2c]
push ecx
push edx
call fcn.00420ed0
mov edi, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x48]
add esp, 8
push ebp
push eax
call fcn.00416a40
add esp, 8
test edi, edi
je 0x415b4d
mov esi, dword [ebx]
lea ecx, [esp + 0x18]
push ecx
call fcn.00426190
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
je 0x415ae5
mov dword [ebx], 0
jmp 0x415b4d
cmp dword [esp + 0x18], 0
mov dword [esp + 0x10], 0xffffffff
je 0x415b12
mov eax, dword [esp + 0x40]
mov ecx, 1
call fcn.00415170
neg eax
sbb eax, eax
add eax, 9
mov ecx, ebp
call fcn.00414a20
jmp 0x415b4d
mov edx, dword [ebx]
cmp dword [edx + 0x57c], 1
jne 0x415b31
mov eax, 5
cmp dword [ebp + 0xc], eax
je 0x415b4d
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629a4]
jmp 0x415b43
mov eax, 4
cmp dword [ebp + 0xc], eax
je 0x415b4d
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629a0]
test eax, eax
je 0x415b4d
push ebp
call eax
add esp, 4
cmp dword [esp + 0x44], 0
je case.0x41589d.1
mov dword [esp + 0x14], 1
jmp case.0x41589d.1
mov ecx, dword [ebx]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.004287a0
mov ecx, eax
mov eax, dword [ebx]
add esp, 8
cmp dword [eax + 0x2d0], 0
mov dword [esp + 0x44], ecx
je 0x415bc4
push 0
push ebx
xor eax, eax
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x4c], 0
call fcn.00414db0
add esp, 8
cmp dword [ebp + 0xc], esi
je case.0x41589d.1
mov dword [ebp + 0xc], esi
mov eax, dword [0x462998]
test eax, eax
je case.0x41589d.1
push ebp
call eax
jmp 0x4165f9
test ecx, ecx
jne case.0x41589d.1
cmp dword [eax + 0xf8], esi
jne 0x415be0
cmp dword [eax + 0x2ec], ecx
je case.0x41589d.1
cmp dword [eax + 0x57c], 1
je case.0x41589d.1
mov eax, 6
mov dword [esp + 0x10], 0xffffffff
cmp dword [ebp + 0xc], eax
je case.0x41589d.1
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629a8]
test eax, eax
je case.0x41589d.1
push ebp
call eax
jmp 0x4165f9
mov ecx, dword [ebx]
lea edx, [esp + 0x38]
push edx
push 0
call fcn.0041f4b0
add esp, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x44], eax
je 0x415c8d
test eax, eax
jne 0x415c95
mov ebx, dword [ebx]
cmp dword [ebx + 0xf8], esi
jne 0x415c4d
cmp dword [ebx + 0x2ec], eax
je 0x415c56
cmp dword [ebx + 0x57c], 1
jne 0x415c6c
mov eax, 5
cmp dword [ebp + 0xc], eax
je case.0x41589d.1
mov dword [ebp + 0xc], eax
jmp 0x4159dc
mov eax, dword [ebx + 0x2ac]
neg eax
sbb eax, eax
add eax, 6
mov ecx, ebp
mov dword [esp + 0x10], 0xffffffff
call fcn.00414a20
jmp case.0x41589d.1
test eax, eax
je case.0x41589d.1
mov dword [esp + 0x14], 1
jmp case.0x41589d.1
mov eax, dword [ebx]
lea edi, [esp + 0x18]
call fcn.0041b570
cmp dword [esp + 0x18], 0
mov dword [esp + 0x44], eax
jne 0x415cd3
cmp dword [ebp + 0xc], 7
je case.0x41589d.1
mov dword [ebp + 0xc], 7
mov eax, dword [0x4629ac]
jmp 0x4159e1
test eax, eax
jne 0x415d00
mov eax, dword [esp + 0x40]
mov ecx, 1
call fcn.00415170
neg eax
sbb eax, eax
add eax, 9
mov ecx, ebp
call fcn.00414a20
mov dword [esp + 0x10], 0xffffffff
jmp case.0x41589d.1
push 1
push ebx
call fcn.00414db0
add esp, 8
mov dword [esp + 0x14], 1
jmp case.0x41589d.1
mov ecx, dword [ebx]
xor eax, eax
test ecx, ecx
je 0x415d45
mov edx, dword [ecx + 0x310]
cmp dword [edx + 0x18], eax
je 0x415d45
mov dword [esp + 0x18], eax
mov eax, dword [ecx + 0x310]
mov eax, dword [eax + 0x18]
lea edx, [esp + 0x18]
push edx
push ecx
call eax
add esp, 8
jmp 0x415d4d
mov dword [esp + 0x18], 1
mov dword [esp + 0x44], eax
test eax, eax
jne 0x415d00
cmp dword [esp + 0x18], eax
je case.0x41589d.1
mov eax, edi
jmp 0x415cdb
mov ecx, dword [ebx]
push ebp
call fcn.00423790
add esp, 4
test eax, eax
je case.0x41589d.1
mov eax, 9
cmp dword [ebp + 0xc], eax
je 0x415d95
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629b4]
test eax, eax
je 0x415d95
push ebp
call eax
add esp, 4
mov dword [esp + 0x10], 0xffffffff
jmp case.0x41589d.1
cmp dword [ebp + 0x3f8], 0
je 0x415df1
mov ebx, dword [ebx]
cmp dword [ebx + 0x26c], 0
je 0x415dc0
mov dword [ebx + 0x26c], 0
mov eax, 0x10
cmp dword [ebp + 0xc], eax
je 0x415ddc
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629d0]
test eax, eax
je 0x415ddc
push ebp
call eax
add esp, 4
mov dword [esp + 0x44], 0
mov dword [esp + 0x10], 0xffffffff
jmp case.0x41589d.1
lea ecx, [esp + 0x20]
push ecx
lea ebx, [ebp + 8]
call fcn.00415570
xor esi, esi
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, esi
jne 0x415ebf
cmp dword [esp + 0x20], esi
jne 0x415e6e
cmp dword [ebp + 0x510], esi
je 0x415e56
mov eax, dword [ebp + 0x8818]
cmp eax, 6
je 0x415e2d
cmp eax, 4
jne 0x415e56
push esi
push ebx
xor eax, eax
call fcn.00414db0
mov eax, 0x10
add esp, 8
cmp dword [ebp + 0xc], eax
je 0x415d95
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629d0]
cmp eax, esi
jmp 0x415d8d
mov eax, 0xa
cmp dword [ebp + 0xc], eax
je 0x4160e4
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629b8]
jmp 0x415e8e
mov edx, dword [ebx]
cmp dword [edx + 0x298], esi
je 0x415ea2
mov eax, 0xb
cmp dword [ebp + 0xc], eax
je 0x4160e4
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629bc]
cmp eax, esi
je 0x4160e4
push ebp
call eax
mov dword [esp + 0x14], esi
jmp 0x4165f9
mov eax, 0xc
cmp dword [ebp + 0xc], eax
je 0x415d95
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629c0]
cmp eax, esi
jmp 0x415d8d
cmp eax, 0x37
jne 0x415f8e
mov edi, dword [ebx]
cmp dword [edi + 0x270], esi
je 0x415f8e
lea ebx, [esp + 0x2c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], esi
call fcn.00425ca0
mov edi, dword [esp + 0x2c]
cmp eax, esi
je 0x415efd
mov dword [esp + 0x44], eax
mov dword [esp + 0x14], 1
jmp 0x415f08
xor eax, eax
cmp edi, esi
setne al
mov dword [esp + 0x1c], eax
lea eax, [ebp + 8]
push esi
push eax
mov eax, dword [esp + 0x4c]
call fcn.00414db0
add esp, 8
cmp dword [esp + 0x1c], esi
je 0x415f7a
cmp eax, esi
je 0x415f38
cmp eax, 0x37
je 0x415f38
push edi
mov dword [esp + 0x48], eax
call dword [0x46f554]
jmp 0x4165f9
mov ebx, 2
push ebx
mov ecx, edi
mov esi, ebp
call fcn.004259a0
add esp, 4
test eax, eax
jne 0x415f28
cmp dword [ebp + 0xc], ebx
je 0x415f65
mov dword [ebp + 0xc], ebx
mov eax, dword [0x462998]
test eax, eax
je 0x415f65
push ebp
call eax
add esp, 4
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x44], 0
jmp case.0x41589d.1
push edi
mov dword [esp + 0x18], 1
call dword [0x46f554]
jmp 0x4165f9
cmp dword [ebx], esi
je 0x415d0b
push esi
jmp 0x415d02
mov ecx, dword [ebx]
xor eax, eax
test ecx, ecx
je 0x415fc9
mov edx, dword [ecx + 0x310]
cmp dword [edx + 0x1c], eax
je 0x415fc9
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x310]
mov eax, dword [eax + 0x1c]
lea edx, [esp + 0x20]
push edx
push ecx
call eax
add esp, 8
jmp 0x415fd1
mov dword [esp + 0x20], 1
mov dword [esp + 0x44], eax
test eax, eax
jne 0x416006
cmp dword [esp + 0x20], eax
je case.0x41589d.1
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x298]
neg eax
sbb eax, eax
add eax, 0xc
mov ecx, ebp
call fcn.00414a20
mov dword [esp + 0x10], 0xffffffff
jmp case.0x41589d.1
push 0
jmp 0x415d02
mov edi, dword [ebx]
xor esi, esi
mov dword [esp + 0x24], esi
mov edx, dword [edi + 0x310]
mov eax, dword [edx + 0x10]
cmp eax, esi
je 0x416041
lea ecx, [esp + 0x24]
push ecx
push edi
call eax
mov esi, eax
add esp, 8
test esi, esi
jne 0x416041
cmp dword [esp + 0x24], 1
jne 0x416041
mov eax, edi
call fcn.00415500
mov dword [esp + 0x44], esi
test esi, esi
jne 0x416080
mov eax, dword [esp + 0x24]
test eax, eax
je 0x416073
xor edx, edx
cmp eax, 1
sete dl
mov ecx, ebp
lea edx, [edx + edx + 0xa]
mov eax, edx
call fcn.00414a20
mov dword [esp + 0x10], 0xffffffff
jmp case.0x41589d.1
mov dword [esp + 0x10], 0
jmp case.0x41589d.1
push 0
mov eax, esi
jmp 0x415d02
mov edi, dword [ebx]
mov edx, ebp
call fcn.00423410
mov eax, dword [esp + 0x40]
push eax
call fcn.00417620
mov ebx, dword [ebx]
or esi, 0xffffffff
add esp, 4
cmp dword [ebx + 0x31c], esi
jne 0x4160c8
cmp dword [ebx + 0x320], esi
jne 0x4160c8
mov eax, 0x10
cmp dword [ebp + 0xc], eax
je 0x4160e4
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629d0]
jmp 0x4160da
mov eax, 0xd
cmp dword [ebp + 0xc], eax
je 0x4160e4
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629c4]
test eax, eax
je 0x4160e4
push ebp
call eax
add esp, 4
mov dword [esp + 0x10], esi
jmp case.0x41589d.1
mov ecx, dword [ebx]
push ebp
call fcn.004237e0
add esp, 4
test eax, eax
je case.0x41589d.1
mov eax, 0xe
cmp dword [ebp + 0xc], eax
je 0x415d95
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629c8]
jmp 0x415d8b
mov ecx, dword [ebx]
push ecx
call fcn.00426f30
add esp, 4
test eax, eax
je 0x416134
mov dword [esp + 0x44], 0x2a
jmp 0x41614c
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push edx
push eax
mov esi, ebp
call fcn.0042b830
add esp, 8
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x208]
mov ecx, dword [ebp + 0x20c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov edx, eax
or edx, ecx
je 0x4161a4
mov edx, dword [ebp + 0x62c]
push esi
push edi
push edx
mov edx, dword [ebp + 0x628]
push edx
mov edx, dword [ebp + 0x5a4]
push ecx
mov ecx, dword [ebp + 0x630]
push eax
mov eax, dword [ebp + 0x634]
push eax
mov eax, dword [ebp + 0x5a0]
push ecx
push edx
push eax
call fcn.00426c80
add esp, 0x28
test eax, eax
jg case.0x41589d.1
mov eax, dword [ebp + 0x210]
mov ecx, dword [ebp + 0x214]
mov edx, eax
or edx, ecx
je 0x4161f4
mov edx, dword [ebp + 0x63c]
push esi
push edi
push edx
mov edx, dword [ebp + 0x638]
push edx
mov edx, dword [ebp + 0x59c]
push ecx
mov ecx, dword [ebp + 0x640]
push eax
mov eax, dword [ebp + 0x644]
push eax
mov eax, dword [ebp + 0x598]
push ecx
push edx
push eax
call fcn.00426c80
add esp, 0x28
test eax, eax
jg case.0x41589d.1
mov eax, 0xe
cmp dword [ebp + 0xc], eax
je case.0x41589d.1
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629c8]
jmp 0x4159e1
mov eax, dword [ebp + 0x20c]
mov ecx, dword [ebp + 0x208]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], edx
jl 0x4162a6
jg 0x416233
test ecx, ecx
jbe 0x4162a6
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [ebp + 0x62c]
push edx
mov edx, dword [ebp + 0x628]
push edx
mov edx, dword [ebp + 0x5a4]
push eax
mov eax, dword [ebp + 0x634]
push ecx
mov ecx, dword [ebp + 0x630]
push eax
mov eax, dword [ebp + 0x5a0]
push ecx
push edx
push eax
call fcn.00426c80
cdq
mov esi, edx
add esp, 0x28
mov edi, eax
test esi, esi
jl 0x4162a6
jg 0x416280
test edi, edi
jbe 0x4162a6
mov dword [ebp + 0xc], 0xf
mov eax, dword [0x4629cc]
test eax, eax
je 0x416296
push ebp
call eax
add esp, 4
push esi
push edi
push ebp
call fcn.00417460
add esp, 0xc
jmp case.0x41589d.1
mov eax, dword [ebp + 0x214]
mov ecx, dword [ebp + 0x210]
test eax, eax
jl 0x416311
jg 0x4162bc
test ecx, ecx
jbe 0x416311
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [esp + 0x4c]
push edx
mov edx, dword [ebp + 0x63c]
push edx
mov edx, dword [ebp + 0x638]
push edx
mov edx, dword [ebp + 0x59c]
push eax
mov eax, dword [ebp + 0x644]
push ecx
mov ecx, dword [ebp + 0x640]
push eax
mov eax, dword [ebp + 0x598]
push ecx
push edx
push eax
call fcn.00426c80
cdq
mov esi, edx
add esp, 0x28
mov edi, eax
test esi, esi
jl 0x416311
jg 0x416280
test edi, edi
ja 0x416280
mov eax, dword [ebx]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
mov eax, ebp
call fcn.004251c0
add esp, 0xc
test byte [ebp + 0xf8], 1
mov dword [esp + 0x44], eax
jne 0x416341
mov ecx, dword [ebx]
mov dword [ecx + 0x34c], 0
test byte [ebp + 0xf8], 2
jne 0x416356
mov edx, dword [ebx]
mov dword [edx + 0x350], 0
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x416363
cmp eax, 0x38
jne 0x416394
mov edi, dword [ebp + 8]
lea ebx, [esp + 0x1c]
call fcn.00425ca0
test eax, eax
jne 0x416394
cmp dword [esp + 0x1c], eax
setne al
mov dword [esp + 0x2c], eax
test eax, eax
je 0x416394
mov dword [esp + 0x44], 0
mov dword [esp + 0x28], 1
jmp 0x4163fb
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4163f3
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x310]
test byte [ecx + 0x40], 2
lea edi, [ebp + 8]
jne 0x4163d8
cmp eax, 0x5c
je 0x4163d8
mov ecx, dword [ecx + 0x40]
and ecx, 0x200
mov ebx, 0
sete bl
mov esi, ebx
test ecx, ecx
jne 0x4163d8
cmp esi, dword [edx + 0x26c]
je 0x4163d8
mov dword [edx + 0x26c], esi
push 1
push edi
call fcn.00414db0
mov ecx, dword [esp + 0x24]
add esp, 8
push ecx
call dword [0x46f554]
jmp 0x4165f9
test esi, esi
je 0x416548
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x358]
lea edi, [ebp + 8]
mov eax, ebp
call fcn.0041a5f0
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
cmp dword [eax], 0
je 0x41642c
mov ecx, dword [eax]
mov edx, dword [ecx]
push 0
push 0
push edx
call fcn.00417460
add esp, 0xc
mov eax, dword [esp + 0x40]
push eax
call fcn.00417620
add esp, 4
cmp dword [ebp + 0x10c], 0
jne 0x4164c1
cmp dword [esp + 0x2c], 0
jne 0x4164f1
cmp dword [ebp + 0x108], 0
je 0x416498
mov ecx, dword [esp + 0x1c]
push ecx
call dword [0x46f554]
mov ecx, dword [ebp + 0x108]
add esp, 4
xor edi, edi
push 1
mov esi, ebp
mov dword [esp + 0x20], ecx
mov dword [ebp + 0x108], edi
call fcn.004259a0
add esp, 4
mov dword [esp + 0x44], eax
cmp eax, edi
jne 0x416490
mov dword [esp + 0x1c], edi
jmp 0x416498
mov dword [esp + 0x14], 1
mov eax, 0x10
cmp dword [ebp + 0xc], eax
je 0x41654f
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629d0]
test eax, eax
je 0x41654f
push ebp
call eax
add esp, 4
jmp 0x41654f
cmp dword [esp + 0x2c], 0
jne 0x4164f1
mov edx, dword [esp + 0x1c]
push edx
call dword [0x46f554]
mov eax, dword [ebp + 0x10c]
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [ebp + 0x10c], 0
mov esi, 3
jmp 0x4164f6
mov esi, 2
push 0
push edi
xor eax, eax
call fcn.00414db0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x416557
mov ecx, dword [esp + 0x1c]
push esi
mov esi, ebp
call fcn.004259a0
add esp, 4
mov dword [esp + 0x44], eax
test eax, eax
jne 0x416557
mov eax, 2
cmp dword [ebp + 0xc], eax
je 0x41653e
mov dword [ebp + 0xc], eax
mov eax, dword [0x462998]
test eax, eax
je 0x41653e
push ebp
call eax
add esp, 4
mov dword [esp + 0x1c], 0
jmp 0x41654f
cmp dword [esp + 0x30], 0
je 0x416557
mov dword [esp + 0x10], 0xffffffff
mov ecx, dword [esp + 0x1c]
push ecx
call dword [0x46f554]
jmp 0x4165f9
mov eax, dword [ebx]
mov dword [esp + 0x10], 0xffffffff
test eax, eax
je 0x4165af
mov ecx, dword [eax + 0x358]
mov eax, ebp
call fcn.0041a5f0
push edi
call fcn.00417620
mov esi, dword [esp + 0x48]
add esp, 4
push 0
push ebx
mov eax, esi
call fcn.00414db0
add esp, 8
test esi, esi
jne 0x4165a4
mov dword [esp + 0x44], eax
cmp dword [ebx], 0
je 0x4165af
mov dword [ebx], 0
cmp dword [ebp + 0x510], 0
je 0x4165d0
cmp dword [ebp + 0x8818], 6
je 0x4165d0
cmp dword [ebp + 0xc], 0
je case.0x41589d.1
mov dword [ebp + 0xc], 0
jmp case.0x41589d.1
mov eax, 0x11
cmp dword [ebp + 0xc], eax
je case.0x41589d.1
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x40]
dec dword [eax + 0x10]
mov eax, dword [0x4629d4]
jmp 0x4159e1
push ebp
mov dword [ebx], 0
call fcn.00417540
add esp, 4
cmp dword [ebp + 0xc], 0x11
jge 0x416705
mov esi, dword [esp + 0x44]
test esi, esi
je 0x41669f
mov edx, dword [esp + 0x40]
xor edi, edi
push edx
mov dword [ebp + 0x87bc], edi
call fcn.00417620
mov eax, dword [ebp + 8]
add esp, 4
cmp eax, edi
je 0x41667b
mov dword [eax + 0x350], edi
mov eax, dword [ebp + 8]
mov dword [eax + 0x34c], edi
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x354]
mov eax, ebp
call fcn.0041a5f0
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x358]
mov eax, ebp
call fcn.0041a5f0
cmp dword [esp + 0x14], edi
je 0x41667b
mov ecx, dword [ebp + 8]
xor eax, eax
cmp esi, 0x1c
sete al
push eax
push ecx
call fcn.0041a3a0
add esp, 8
mov dword [ebp + 8], edi
mov eax, 0x11
cmp dword [ebp + 0xc], eax
je 0x416701
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x40]
dec dword [eax + 0x10]
mov eax, dword [0x4629d4]
cmp eax, edi
je 0x416701
push ebp
call eax
add esp, 4
jmp 0x416701
mov eax, dword [ebp + 8]
test eax, eax
je 0x416701
push eax
call fcn.00426f30
add esp, 4
test eax, eax
je 0x416701
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x310]
mov eax, dword [edx + 0x40]
and eax, 0x200
mov edx, 0
sete dl
mov dword [esp + 0x44], 0x2a
test eax, eax
jne 0x4166e6
cmp edx, dword [ecx + 0x26c]
je 0x4166e6
mov dword [ecx + 0x26c], edx
xor eax, eax
cmp dword [ebp + 0xc], 0x10
mov ecx, ebp
setge al
add eax, 0x10
call fcn.00414a20
mov dword [esp + 0x10], 0xffffffff
cmp dword [ebp + 0xc], 0x11
jne 0x415696
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
lea eax, [ebp + 0x14]
mov dword [eax], 1
mov dword [eax + 4], ebp
mov dword [eax + 8], ecx
mov esi, dword [edx + 0x14]
mov edi, dword [esi + 4]
push eax
call fcn.00425eb0
mov esi, eax
add esp, 4
neg esi
sbb esi, esi
and esi, 0xfffffffd
add esi, 3
mov eax, 0x12
mov dword [esp + 0x10], esi
cmp dword [ebp + 0xc], eax
je 0x41569a
mov dword [ebp + 0xc], eax
mov eax, dword [0x4629d8]
test eax, eax
je 0x41569a
push ebp
call eax
add esp, 4
jmp 0x41569a
mov ecx, dword [ebp + 0xc]
push ecx
push str.In_state__d_with_no_easy_conn__bail_out__n
mov eax, ebp
call fcn.00414140
add esp, 8
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov eax, dword [esp + 0x44]
mov dword [ebp + 0x10], eax
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x2c
ret