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

Disassembly:
sub esp, 0x3c
push edi
xor edi, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
cmp esi, edi
je 0x526111
cmp dword [esi + 0x4990], 0xc0dedbad
jne 0x526111
push ebx
push ebp
lea esp, [esp]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ebp
cmp dword [esi + 0x4858], ebx
je 0x5251dd
mov eax, dword [esi + 0x4860]
push eax
push esi
push str.Pipe_broke:_handle__p__url___s_n
push esi
call fcn.005267e0
add esp, 0x10
cmp dword [esi + 0xc], 0x11
jge 0x5251cf
lea eax, [ebx + 2]
mov ecx, esi
call fcn.005237e0
or ebp, 0xffffffff
xor edi, edi
mov dword [esi + 0x4858], ebx
mov dword [esi + 8], ebx
jmp 0x52607a
cmp dword [esi + 8], ebx
lea ebp, [esi + 8]
jne 0x5251f6
mov eax, dword [esi + 0xc]
cmp eax, 2
jle 0x5251f6
cmp eax, 0x10
jl 0x5260e7
mov ebx, dword [esp + 0x4c]
push 1
mov ecx, ebx
call fcn.00523e70
add esp, 4
test eax, eax
je 0x525213
push ebx
call fcn.00524bc0
add esp, 4
mov ecx, dword [ebp]
test ecx, ecx
je 0x525229
mov eax, dword [esi + 0xc]
cmp eax, 2
jle 0x525229
cmp eax, 0x11
jge 0x525229
mov dword [ecx], esi
cmp dword [ebp], 0
je 0x52538f
mov eax, dword [esi + 0xc]
cmp eax, 2
jl 0x52538f
cmp eax, 0x11
jge 0x52538f
xor ecx, ecx
cmp eax, 8
setle cl
lea edx, [esp + 0x50]
push ecx
push edx
push esi
call fcn.00528d10
add esp, 0xc
test edx, edx
jg 0x52538f
jl 0x525271
test eax, eax
jae 0x52538f
mov eax, dword [esi + 0xc]
cmp eax, 3
jne 0x5252ab
mov eax, dword [esi + 0x62c]
mov ecx, dword [esi + 0x628]
mov edx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x54]
push ecx
push edx
push eax
call fcn.00526260
push edx
push eax
push str.Resolving_timed_out_after__ld_milliseconds
push esi
call fcn.00526870
add esp, 0x20
jmp 0x52535c
cmp eax, 4
jne 0x5252df
mov ecx, dword [esi + 0x62c]
mov edx, dword [esi + 0x628]
mov eax, dword [esp + 0x54]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push eax
push ecx
call fcn.00526260
push edx
push eax
push str.Connection_timed_out_after__ld_milliseconds
push esi
call fcn.00526870
add esp, 0x20
jmp 0x52535c
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, eax
and edx, ecx
cmp edx, 0xffffffff
mov edx, dword [esi + 0x62c]
je 0x52532a
push ecx
mov ecx, dword [esi + 0x70]
push eax
mov eax, dword [esi + 0x74]
push eax
mov eax, dword [esi + 0x628]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x64]
push eax
push ecx
push edx
call fcn.00526260
add esp, 0x10
push edx
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_out_of__I64d_bytes_received
push esi
call fcn.00526870
add esp, 0x20
jmp 0x52535c
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
push eax
mov eax, dword [esi + 0x628]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x5c]
push eax
push ecx
push edx
call fcn.00526260
add esp, 0x10
push edx
push eax
push str.Operation_timed_out_after__ld_milliseconds_with__I64d_bytes_received
push esi
call fcn.00526870
add esp, 0x18
cmp dword [esi + 0xc], 9
jle 0x525378
mov eax, dword [ebp]
push 2
push eax
call fcn.00529810
add esp, 8
mov dword [esp + 0x10], 1
mov edi, 0x1c
push 1
push ebp
mov eax, edi
call fcn.00523aa0
add esp, 8
jmp case.0x52539b.1
mov eax, dword [esi + 0xc]
cmp eax, 0x12
ja case.default.0x52539b
jmp dword [eax*4 + 0x52611c]
push esi
call fcn.00548450
mov edi, eax
add esp, 4
test edi, edi
jne case.0x52539b.1
lea eax, [edi + 2]
mov ecx, esi
call fcn.005237e0
push 1
push esi
call fcn.0052f0c0
add esp, 8
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
push 2
push esi
call fcn.0052f0c0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x38]
push edx
push ebp
push esi
call fcn.00523750
mov edi, eax
add esp, 0x18
cmp edi, 0x59
jne 0x525426
lea eax, [edi - 0x58]
mov ecx, esi
call fcn.005237e0
mov eax, dword [ebx + 0x28]
push esi
push eax
add ebx, 0x24
push ebx
call fcn.00543d00
add esp, 0xc
mov edi, eax
neg edi
sbb edi, edi
and edi, 0xffffffe5
add edi, 0x1b
jmp case.0x52539b.1
test edi, edi
jne case.0x52539b.1
mov ecx, dword [ebp]
push ecx
push esi
call fcn.005443f0
mov edi, eax
add esp, 8
test edi, edi
jne 0x525729
cmp dword [esp + 0x2c], eax
je 0x52545a
lea eax, [edi + 3]
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
cmp dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xffffffff
je 0x525487
push 1
push ebx
call fcn.00523ca0
add esp, 8
neg eax
sbb eax, eax
add eax, 9
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
mov edx, dword [ebp]
cmp dword [edx + 0x740], 1
mov ecx, esi
jne 0x5254a4
mov eax, 5
call fcn.005237e0
jmp case.0x52539b.1
mov eax, 4
call fcn.005237e0
jmp case.0x52539b.1
mov edi, dword [ebp]
mov dword [esp + 0x14], 0
cmp dword [edi + 0x3b0], 0
je 0x5254cf
mov ebx, dword [edi + 0xdc]
jmp 0x5254e6
cmp dword [edi + 0x3a4], 0
je 0x5254e0
mov ebx, dword [edi + 0xac]
jmp 0x5254e6
mov ebx, dword [edi + 0x98]
mov eax, dword [edi + 0xf4]
push eax
push ebx
push edi
call fcn.0051b8a0
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x525526
push ebx
push str.Hostname__s_was_found_in_DNS_cache_n
mov dword [edi + 0x66c], eax
mov dword [edi + 0x670], 1
push esi
xor edi, edi
call fcn.005267e0
add esp, 0xc
cmp dword [esp + 0x14], edi
jne 0x525539
mov edx, dword [ebp]
lea ecx, [esp + 0x14]
push ecx
push edx
call fcn.0051a7c0
add esp, 8
mov edi, eax
mov ebx, dword [esp + 0x4c]
push esi
push ebx
call fcn.005241d0
add esp, 8
cmp dword [esp + 0x14], 0
je 0x5255ae
mov ecx, dword [ebp]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.0052a980
mov edi, eax
add esp, 8
test edi, edi
je 0x52556e
mov dword [ebp], 0
jmp 0x5255ae
cmp dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xffffffff
je 0x525591
push 1
push ebx
call fcn.00523ca0
add esp, 8
neg eax
sbb eax, eax
add eax, 9
jmp 0x5255a7
mov edx, dword [ebp]
cmp dword [edx + 0x740], 1
mov eax, 5
je 0x5255a7
mov eax, 4
mov ecx, esi
call fcn.005237e0
test edi, edi
je case.0x52539b.1
mov dword [esp + 0x10], 1
jmp case.0x52539b.1
mov ecx, dword [ebp]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.00541240
mov edi, eax
mov eax, dword [ebp]
add esp, 8
cmp dword [eax + 0x400], 0
je 0x525607
xor edi, edi
push edi
push ebp
xor eax, eax
mov dword [esp + 0x14], 0xffffffff
call fcn.00523aa0
add esp, 8
lea eax, [edi + 2]
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
test edi, edi
jne case.0x52539b.1
cmp dword [eax + 0xe8], 2
jne 0x525624
cmp dword [eax + 0x41c], edi
je case.0x52539b.1
cmp dword [eax + 0x740], 1
je case.0x52539b.1
mov eax, 6
mov ecx, esi
mov dword [esp + 0xc], 0xffffffff
call fcn.005237e0
jmp case.0x52539b.1
mov eax, dword [ebp]
lea edx, [esp + 0x30]
push edx
push 0
push eax
call fcn.00529d70
add esp, 0xc
cmp dword [esp + 0x30], 0
mov edi, eax
je 0x5255ae
test edi, edi
jne 0x5255b6
mov eax, dword [ebp]
cmp dword [eax + 0xe8], 2
jne 0x525686
cmp dword [eax + 0x41c], edi
je 0x52568f
cmp dword [eax + 0x740], 1
jne 0x5256a0
mov eax, 5
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
mov eax, dword [eax + 0x3dc]
neg eax
sbb eax, eax
add eax, 6
mov ecx, esi
mov dword [esp + 0xc], 0xffffffff
call fcn.005237e0
jmp case.0x52539b.1
mov edx, dword [ebp]
lea ecx, [esp + 0x18]
push ecx
push edx
call fcn.0051cae0
add esp, 8
cmp dword [esp + 0x18], 0
mov edi, eax
jne 0x5256ec
mov eax, 7
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
test edi, edi
jne 0x525716
push 1
push ebx
call fcn.00523ca0
add esp, 8
neg eax
sbb eax, eax
add eax, 9
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
push esi
call fcn.00401410
push 1
push ebp
mov eax, edi
call fcn.00523aa0
add esp, 0xc
mov dword [esp + 0x10], 1
jmp case.0x52539b.1
mov ecx, dword [ebp]
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.0051ca60
mov edi, eax
add esp, 8
test edi, edi
jne 0x525716
cmp dword [esp + 0x18], eax
je case.0x52539b.1
push 1
push ebx
call fcn.00523ca0
add esp, 8
neg eax
sbb eax, eax
add eax, 9
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
mov edx, dword [ebp]
push edx
push esi
call fcn.00544330
add esp, 8
test eax, eax
je case.0x52539b.1
mov eax, 9
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
cmp dword [esi + 0x400], 0
je 0x5257dd
mov eax, dword [ebp]
push 0
push eax
call fcn.00529810
add esp, 8
mov eax, 0x10
mov ecx, esi
call fcn.005237e0
xor edi, edi
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
lea ecx, [esp + 0x1c]
push ecx
mov ebx, ebp
call fcn.00523f60
mov edi, eax
add esp, 4
test edi, edi
jne 0x525887
xor ebx, ebx
cmp dword [esp + 0x1c], ebx
jne 0x525850
cmp dword [esi + 0x520], ebx
je 0x52583b
mov eax, dword [esi + 0x48b8]
cmp eax, 7
je 0x525816
cmp eax, 5
jne 0x52583b
push ebx
push ebp
xor eax, eax
call fcn.00523aa0
add esp, 8
mov eax, 0x10
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
mov eax, 0xa
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], ebx
jmp case.0x52539b.1
mov edx, dword [ebp]
mov ecx, esi
cmp dword [edx + 0x3c8], ebx
je 0x525870
mov eax, 0xb
call fcn.005237e0
mov dword [esp + 0xc], ebx
jmp case.0x52539b.1
mov eax, 0xc
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
cmp edi, 0x37
jne 0x525958
mov eax, dword [ebp]
cmp dword [eax + 0x3a0], 0
je 0x525958
lea ecx, [esp + 0x14]
push ecx
xor ebx, ebx
push eax
mov dword [esp + 0x1c], ebx
call fcn.00548ac0
add esp, 8
test eax, eax
je 0x5258c4
mov edi, eax
mov dword [esp + 0x10], 1
jmp 0x5258cd
xor ebx, ebx
cmp dword [esp + 0x14], ebx
setne bl
push esi
call fcn.00401410
push 0
push ebp
mov eax, edi
call fcn.00523aa0
add esp, 0xc
test ebx, ebx
je 0x525940
test eax, eax
je 0x5258ff
cmp eax, 0x37
je 0x5258ff
mov edx, dword [esp + 0x14]
push edx
mov edi, eax
call dword [0x5b4cd8]
jmp 0x525fa6
mov eax, dword [esp + 0x14]
push 2
push eax
push esi
call fcn.00548880
add esp, 0xc
test eax, eax
jne 0x52592e
mov eax, 2
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
xor edi, edi
jmp case.0x52539b.1
mov ecx, dword [esp + 0x14]
push ecx
mov edi, eax
call dword [0x5b4cd8]
jmp 0x525fa6
mov edx, dword [esp + 0x14]
push edx
mov dword [esp + 0x14], 1
call dword [0x5b4cd8]
jmp 0x525fa6
push esi
call fcn.00401410
add esp, 4
cmp dword [ebp], 0
je 0x525974
push 0
push ebp
mov eax, edi
call fcn.00523aa0
add esp, 8
mov dword [esp + 0x10], 1
jmp case.0x52539b.1
mov ecx, dword [ebp]
lea eax, [esp + 0x1c]
push eax
push ecx
call fcn.0051caa0
mov edi, eax
add esp, 8
test edi, edi
jne 0x5259c6
cmp dword [esp + 0x1c], eax
je case.0x52539b.1
mov edx, dword [ebp]
mov eax, dword [edx + 0x3c8]
neg eax
sbb eax, eax
add eax, 0xc
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
push esi
call fcn.00401410
push 0
jmp 0x52571e
mov edi, dword [ebp]
lea ebx, [esp + 0x34]
call fcn.00523ff0
mov edi, eax
test edi, edi
jne 0x5259c6
mov eax, dword [esp + 0x34]
test eax, eax
je 0x525a0f
xor ecx, ecx
cmp eax, 1
sete cl
lea ecx, [ecx + ecx + 0xa]
mov eax, ecx
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
mov dword [esp + 0xc], 0
jmp case.0x52539b.1
mov edx, dword [ebp]
push edx
push esi
call fcn.00544440
push ebx
call fcn.00524bc0
mov eax, dword [ebp]
or ebx, 0xffffffff
add esp, 0xc
cmp dword [eax + 0x44c], ebx
jne 0x525a48
cmp dword [eax + 0x450], ebx
lea eax, [ebx + 0x11]
je 0x525a4d
mov eax, 0xd
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], ebx
jmp case.0x52539b.1
mov eax, dword [ebp]
push eax
push esi
call fcn.00544380
add esp, 8
test eax, eax
je case.0x52539b.1
mov eax, 0xe
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0xc], 0xffffffff
jmp case.0x52539b.1
mov ecx, dword [ebp]
push ecx
call fcn.0052f4c0
add esp, 4
test eax, eax
je 0x525aa5
mov edi, 0x2a
jmp case.0x52539b.1
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push edx
push eax
push esi
call fcn.005463d0
mov edi, eax
add esp, 0xc
test edi, edi
jne case.0x52539b.1
mov eax, dword [esi + 0x20c]
mov ecx, dword [esi + 0x208]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
jl 0x525b29
jg 0x525ae2
cmp ecx, edx
jbe 0x525b29
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esi + 0x644]
push edx
mov edx, dword [esi + 0x640]
push edx
mov edx, dword [esi + 0x5bc]
push eax
mov eax, dword [esi + 0x64c]
push ecx
mov ecx, dword [esi + 0x648]
push eax
mov eax, dword [esi + 0x5b8]
push ecx
push edx
push eax
call fcn.0052f270
cdq
add esp, 0x28
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov ecx, dword [esi + 0x214]
mov ebx, dword [esi + 0x210]
xor eax, eax
xor edx, edx
test ecx, ecx
jl 0x525b82
jg 0x525b43
test ebx, ebx
jbe 0x525b82
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
push edx
mov edx, dword [esi + 0x654]
push eax
mov eax, dword [esi + 0x650]
push edx
mov edx, dword [esi + 0x658]
push eax
mov eax, dword [esi + 0x5b4]
push ecx
mov ecx, dword [esi + 0x65c]
push ebx
push ecx
mov ecx, dword [esi + 0x5b0]
push edx
push eax
push ecx
call fcn.0052f270
add esp, 0x28
cdq
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jg 0x525bae
jl 0x525b93
cmp dword [esp + 0x38], 0
ja 0x525bae
test edx, edx
jg 0x525bae
jl 0x525b9d
test eax, eax
ja 0x525bae
mov eax, 0xe
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
cmp ecx, edx
jl 0x525bce
jg 0x525bba
cmp dword [esp + 0x38], eax
jb 0x525bce
mov edx, dword [esp + 0x38]
push ecx
push edx
push esi
call fcn.005249e0
add esp, 0xc
jmp case.0x52539b.1
push edx
push eax
push esi
call fcn.005249e0
add esp, 0xc
jmp case.0x52539b.1
mov eax, dword [esi + 0x20c]
mov ecx, dword [esi + 0x208]
xor edx, edx
cmp eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], edx
jl 0x525c51
jg 0x525c0a
cmp ecx, edx
jbe 0x525c51
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esi + 0x644]
push edx
mov edx, dword [esi + 0x640]
push edx
mov edx, dword [esi + 0x5bc]
push eax
mov eax, dword [esi + 0x64c]
push ecx
mov ecx, dword [esi + 0x648]
push eax
mov eax, dword [esi + 0x5b8]
push ecx
push edx
push eax
call fcn.0052f270
cdq
add esp, 0x28
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 0x214]
mov ecx, dword [esi + 0x210]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x40], ebx
jl 0x525cb2
jg 0x525c6d
cmp ecx, ebx
jbe 0x525cb2
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x54]
push edx
mov edx, dword [esi + 0x654]
push edx
mov edx, dword [esi + 0x650]
push edx
mov edx, dword [esi + 0x5b4]
push eax
mov eax, dword [esi + 0x65c]
push ecx
mov ecx, dword [esi + 0x658]
push eax
mov eax, dword [esi + 0x5b0]
push ecx
push edx
push eax
call fcn.0052f270
cdq
add esp, 0x28
mov dword [esp + 0x40], eax
mov ebx, edx
cmp dword [esp + 0x3c], 0
jg 0x525ee6
jl 0x525cca
cmp dword [esp + 0x38], 0
ja 0x525ee6
test ebx, ebx
jg 0x525ee6
jl 0x525cdf
cmp dword [esp + 0x40], 0
ja 0x525ee6
mov eax, dword [ebp]
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x24]
push edx
push esi
push eax
call fcn.00548050
add esp, 0x10
test byte [esi + 0xf8], 1
mov edi, eax
jne 0x525d0d
mov ecx, dword [ebp]
push ecx
call fcn.005443e0
add esp, 4
test byte [esi + 0xf8], 2
jne 0x525d22
mov edx, dword [ebp]
push edx
call fcn.005443d0
add esp, 4
cmp dword [esp + 0x20], 0
jne 0x525d2e
cmp edi, 0x38
jne 0x525d5c
mov ecx, dword [ebp]
lea eax, [esp + 0x14]
push eax
push ecx
call fcn.00548ac0
add esp, 8
test eax, eax
jne 0x525d5c
xor ebx, ebx
cmp dword [esp + 0x14], ebx
setne bl
test ebx, ebx
je 0x525d60
xor edi, edi
mov dword [esp + 0x20], 1
jmp 0x525db1
mov ebx, dword [esp + 0x24]
test edi, edi
je 0x525da6
mov eax, dword [ebp]
mov edx, dword [eax + 0x440]
test byte [edx + 0x40], 2
jne 0x525d83
cmp edi, 0x5c
je 0x525d83
push 2
push eax
call fcn.00529810
add esp, 8
push esi
call fcn.00401410
push 1
push ebp
mov eax, edi
call fcn.00523aa0
mov edx, dword [esp + 0x20]
add esp, 0xc
push edx
call dword [0x5b4cd8]
jmp 0x525fa6
cmp dword [esp + 0x20], 0
je 0x525ec7
push esi
call fcn.00401410
mov eax, dword [ebp]
add eax, 0x4c8
push eax
push esi
call fcn.0051c5d0
mov ecx, dword [ebp]
mov eax, dword [ecx + 0x4c8]
add esp, 0xc
test eax, eax
je 0x525de5
mov edx, dword [eax]
push 0
push 0
push edx
call fcn.005249e0
add esp, 0xc
mov eax, dword [esp + 0x4c]
push eax
call fcn.00524bc0
add esp, 4
cmp dword [esi + 0x10c], 0
jne 0x525e61
test ebx, ebx
jne 0x525e8a
cmp dword [esi + 0x108], ebx
je 0x525e53
mov ecx, dword [esp + 0x14]
push ecx
call dword [0x5b4cd8]
mov eax, dword [esi + 0x108]
push 1
push eax
push esi
mov dword [esp + 0x24], eax
mov dword [esi + 0x108], ebx
call fcn.00548880
mov edi, eax
add esp, 0x10
cmp edi, ebx
jne 0x525e4b
lea eax, [ebx + 0x10]
mov ecx, esi
mov dword [esp + 0x14], ebx
call fcn.005237e0
jmp 0x525ece
mov dword [esp + 0x10], 1
mov eax, 0x10
mov ecx, esi
call fcn.005237e0
jmp 0x525ece
test ebx, ebx
jne 0x525e8a
mov edx, dword [esp + 0x14]
push edx
call dword [0x5b4cd8]
mov eax, dword [esi + 0x10c]
mov dword [esi + 0x10c], ebx
add esp, 4
mov dword [esp + 0x14], eax
mov ebx, 3
jmp 0x525e8f
mov ebx, 2
push 0
push ebp
xor eax, eax
call fcn.00523aa0
mov edi, eax
add esp, 8
test edi, edi
jne 0x525ed6
mov ecx, dword [esp + 0x14]
push ebx
push ecx
push esi
call fcn.00548880
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x525ed6
lea eax, [edi + 2]
mov ecx, esi
call fcn.005237e0
mov dword [esp + 0x14], edi
jmp 0x525ece
cmp dword [esp + 0x28], 0
je 0x525ed6
mov dword [esp + 0xc], 0xffffffff
mov edx, dword [esp + 0x14]
push edx
call dword [0x5b4cd8]
jmp 0x525fa6
mov eax, 0xf
mov ecx, esi
call fcn.005237e0
cmp dword [esp + 0x3c], ebx
jl 0x525f1c
jg 0x525f04
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x38], eax
jb 0x525f1c
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
push esi
call fcn.005249e0
add esp, 0xc
jmp case.0x52539b.1
mov eax, dword [esp + 0x40]
push ebx
push eax
push esi
call fcn.005249e0
add esp, 0xc
jmp case.0x52539b.1
mov eax, dword [ebp]
mov dword [esp + 0xc], 0xffffffff
test eax, eax
je 0x525f6e
add eax, 0x4c8
push eax
push esi
call fcn.0051c5d0
push ebx
call fcn.00524bc0
push 0
push ebp
mov eax, edi
call fcn.00523aa0
add esp, 0x14
test edi, edi
jne 0x525f61
mov edi, eax
cmp dword [ebp], 0
je 0x525f6e
mov dword [ebp], 0
cmp dword [esi + 0x520], 0
je 0x525f8b
cmp dword [esi + 0x48b8], 7
je 0x525f8b
xor eax, eax
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
mov eax, 0x11
mov ecx, esi
call fcn.005237e0
jmp case.0x52539b.1
push esi
mov dword [ebp], 0
call fcn.00524a90
add esp, 4
mov ebx, 0x11
cmp dword [esi + 0xc], ebx
jge 0x52604b
test edi, edi
je 0x5260a5
mov ecx, dword [esp + 0x4c]
push ecx
mov dword [esi + 0x4858], 0
call fcn.00524bc0
mov eax, dword [ebp]
add esp, 4
test eax, eax
je 0x526033
push eax
call fcn.005443d0
mov edx, dword [ebp]
push edx
call fcn.005443e0
mov eax, dword [ebp]
add eax, 0x4b8
push eax
push esi
call fcn.0051c5d0
mov ecx, dword [ebp]
add ecx, 0x4c8
push ecx
push esi
call fcn.0051c5d0
add esp, 0x18
cmp dword [esp + 0x10], 0
je 0x526042
mov eax, dword [ebp]
xor edx, edx
cmp edi, 0x1c
sete dl
push edx
push eax
call fcn.005212e0
add esp, 8
mov dword [ebp], 0
jmp 0x526042
cmp dword [esi + 0xc], 2
jne 0x526042
push esi
call fcn.00401410
add esp, 4
mov eax, ebx
mov ecx, esi
call fcn.005237e0
mov ebp, dword [esp + 0xc]
cmp dword [esi + 0xc], ebx
jne 0x52607a
mov eax, dword [esp + 0x4c]
lea ecx, [esi + 0x14]
mov dword [ecx], 1
mov dword [ecx + 4], esi
mov dword [ecx + 8], edi
call fcn.00523910
mov ebp, eax
mov eax, 0x12
mov ecx, esi
call fcn.005237e0
cmp ebp, 0xffffffff
je 0x525190
mov ecx, dword [esp + 0x4c]
push 0
call fcn.00523e70
add esp, 4
test eax, eax
jne 0x525190
mov eax, ebp
pop ebp
pop ebx
mov dword [esi + 0x10], edi
pop edi
add esp, 0x3c
ret
mov eax, dword [ebp]
test eax, eax
je 0x52604b
push eax
call fcn.0052f4c0
add esp, 4
test eax, eax
je 0x52604b
mov ecx, dword [ebp]
push 2
push ecx
mov edi, 0x2a
call fcn.00529810
xor eax, eax
add esp, 8
cmp dword [esi + 0xc], 0x10
mov ecx, esi
setge al
add eax, 0x10
call fcn.005237e0
or ebp, 0xffffffff
jmp 0x52604f
mov edx, dword [esi + 0xc]
push edx
push str.In_state__d_with_no_easy_conn__bail_out__n
push esi
call fcn.00526870
add esp, 0xc
pop ebp
pop ebx
mov eax, 4
pop edi
add esp, 0x3c
ret
pop ebp
pop ebx
mov dword [esi + 0x10], edi
xor eax, eax
pop edi
add esp, 0x3c
ret
mov eax, 2
pop edi
add esp, 0x3c
ret