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

Disassembly:
sub esp, 0x44
mov eax, dword [0x640844]
xor eax, esp
mov dword [esp + 0x40], eax
movups xmm0, xmmword [esp + 0x4c]
push ebx
mov ebx, dword [esp + 0x4c]
push ebp
push esi
mov esi, dword [esp + 0x68]
push edi
xor edi, edi
mov dword [esp + 0x24], ebx
mov byte [esp + 0x11], 0
mov byte [esp + 0x13], 0
mov byte [esp + 0x1a], 0
movups xmmword [esp + 0x40], xmm0
test esi, esi
je 0x51e22a
cmp dword [esi + 0x10a0], 0xc0dedbad
jne 0x51e22a
xor ebp, ebp
mov byte [esp + 0x12], 0
cmp dword [esi + 8], ebp
jne 0x51cf2e
mov eax, dword [esi + 0x24]
cmp eax, 2
jle 0x51cf2e
cmp eax, 0xe
jl 0x51e1eb
mov al, byte [ebx + 0x79]
mov byte [ebx + 0x79], 0
test al, al
je 0x51cf8d
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x51cf8d
mov ebx, dword [eax]
cmp dword [ebx + 0x24], 2
je 0x51cf60
push ebx
mov dword [ebx + 0x24], 2
call fcn.00530060
mov eax, dword [esp + 0x20]
add esp, 4
push 0
push eax
mov eax, dword [esp + 0x2c]
add eax, 0x24
push eax
call fcn.005319d0
push 7
push 0
push 0
push ebx
call fcn.0051b860
add esp, 0x1c
or dword [ebx + 0xfa4], 0x2000
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 8]
test eax, eax
je 0x51d10e
mov ecx, dword [esi + 0x24]
cmp ecx, 2
jle 0x51cfb2
cmp ecx, 0xf
jge 0x51cfb2
mov dword [eax], esi
mov eax, dword [esi + 8]
test eax, eax
je 0x51d10e
mov ecx, dword [esi + 0x24]
lea eax, [ecx - 2]
cmp eax, 0xc
ja 0x51d10e
cmp ecx, 8
setle al
movzx eax, al
push eax
lea eax, [esp + 0x44]
push eax
push esi
call fcn.0052c2c0
add esp, 0xc
test edx, edx
jg 0x51d10e
jl 0x51cfeb
test eax, eax
jae 0x51d10e
mov eax, dword [esi + 0x24]
movups xmm0, xmmword [esi + 0xb48]
cmp eax, 3
jne 0x51d029
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x60]
movups xmmword [eax], xmm0
call fcn.00531770
push edx
push eax
push str.Resolving_timed_out_after__I64d_milliseconds
push esi
call fcn.0052aac0
add esp, 0x30
jmp 0x51d0e0
cmp eax, 4
jne 0x51d05d
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x60]
movups xmmword [eax], xmm0
call fcn.00531770
push edx
push eax
push str.Connection_timed_out_after__I64d_milliseconds
push esi
call fcn.0052aac0
add esp, 0x30
jmp 0x51d0e0
mov edx, dword [esi + 0x88]
mov eax, edx
mov ecx, dword [esi + 0x8c]
and eax, ecx
mov ebx, dword [esi + 0x98]
mov edi, dword [esi + 0x9c]
cmp eax, 0xffffffff
je 0x51d0b1
push ecx
push edx
push edi
push ebx
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x70]
movups xmmword [eax], xmm0
call fcn.00531770
add esp, 0x20
push edx
push eax
push str.Operation_timed_out_after__I64d_milliseconds_with__I64d_out_of__I64d_bytes_received
push esi
call fcn.0052aac0
add esp, 0x20
jmp 0x51d0e0
push edi
push ebx
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x68]
movups xmmword [eax], xmm0
call fcn.00531770
add esp, 0x20
push edx
push eax
push str.Operation_timed_out_after__I64d_milliseconds_with__I64d_bytes_received
push esi
call fcn.0052aac0
add esp, 0x18
cmp dword [esi + 0x24], 8
jle 0x51d0f8
push 2
push dword [esi + 8]
call fcn.0052b790
add esp, 8
mov byte [esp + 0x12], 1
push 1
mov edi, 0x1c
push edi
push esi
call fcn.0051ca40
add esp, 0xc
jmp case.0x51d11a.1
mov ecx, dword [esi + 0x24]
cmp ecx, 0x10
ja case.default.0x51d11a
jmp dword [ecx*4 + 0x51e244]
push esi
call fcn.00530100
mov edi, eax
add esp, 4
test edi, edi
jne case.0x51d11a.1
cmp dword [esi + 0x24], 2
je 0x51d14a
push esi
mov dword [esi + 0x24], 2
call fcn.00530060
add esp, 4
push 1
push esi
call fcn.005382f0
add esp, 8
or ebp, 0xffffffff
jmp case.0x51d11a.1
push 2
push esi
call fcn.005382f0
mov eax, dword [esi + 0x638]
add esp, 8
test eax, eax
je 0x51d180
push 9
cdq
push edx
push eax
push esi
call fcn.0051b860
add esp, 0x10
mov eax, dword [esi + 0x63c]
test eax, eax
je 0x51d198
push 2
cdq
push edx
push eax
push esi
call fcn.0051b860
add esp, 0x10
lea eax, [esp + 0x11]
push eax
lea eax, [esp + 0x2d]
push eax
push esi
call fcn.00525c70
mov edi, eax
add esp, 0xc
cmp edi, 0x59
jne 0x51d1da
cmp dword [esi + 0x24], 1
je 0x51d1bf
mov dword [esi + 0x24], 1
lea eax, [esi + 0xc]
push eax
push esi
push dword [ebx + 0x28]
lea eax, [ebx + 0x24]
push eax
call fcn.00531950
add esp, 0x10
xor edi, edi
jmp case.0x51d11a.1
test dword [esi + 0xfa4], 0x2000
je 0x51d249
push str.Transfer_was_pending__now_try_another_n
push esi
call fcn.0052abb0
mov eax, dword [esi + 0x78]
add esp, 8
add eax, 0x24
mov dword [esp + 0x2c], eax
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x51d249
mov ebx, dword [eax]
cmp dword [ebx + 0x24], 2
je 0x51d224
push ebx
mov dword [ebx + 0x24], 2
call fcn.00530060
mov eax, dword [esp + 0x20]
add esp, 4
push 0
push eax
push dword [esp + 0x34]
call fcn.005319d0
push 7
push 0
push 0
push ebx
call fcn.0051b860
add esp, 0x1c
or dword [ebx + 0xfa4], 0x2000
test edi, edi
jne case.0x51d11a.1
cmp byte [esp + 0x29], 0
je 0x51d26e
cmp dword [esi + 0x24], 3
je case.0x51d11a.1
mov dword [esi + 0x24], 3
jmp case.0x51d11a.1
or ebp, 0xffffffff
cmp byte [esp + 0x11], 0
je 0x51d294
cmp dword [esi + 0x24], 8
je case.0x51d11a.1
push esi
mov dword [esi + 0x24], 8
call fcn.0052f5d0
jmp 0x51e014
push dword [esi + 8]
call fcn.0052f600
mov ecx, dword [esi + 0x24]
add esp, 4
test al, al
je 0x51d2bb
cmp ecx, 5
je case.0x51d11a.1
mov dword [esi + 0x24], 5
jmp case.0x51d11a.1
cmp ecx, 4
je case.0x51d11a.1
mov dword [esi + 0x24], 4
jmp case.0x51d11a.1
mov edi, dword [esi + 8]
mov dword [esp + 0x14], ebp
mov eax, dword [edi + 0x29c]
test al, 0x40
je 0x51d2e9
mov ebx, dword [edi + 0xe4]
jmp 0x51d2fb
test al, 8
je 0x51d2f5
mov ebx, dword [edi + 0xb4]
jmp 0x51d2fb
mov ebx, dword [edi + 0x9c]
push dword [edi + 0xfc]
push ebx
push edi
call fcn.00532130
add esp, 0xc
mov dword [esp + 0x14], eax
test eax, eax
je 0x51d337
or dword [edi + 0x498], 1
push ebx
push 0x5f1e68
mov dword [edi + 0x48c], eax
xor edi, edi
push esi
call fcn.0052abb0
add esp, 0xc
cmp dword [esp + 0x14], edi
jne 0x51d349
lea eax, [esp + 0x14]
push eax
push dword [esi + 8]
call fcn.005329e0
add esp, 8
mov edi, eax
push esi
push dword [esp + 0x28]
call fcn.0051e380
add esp, 8
cmp dword [esp + 0x14], ebp
je 0x51d383
lea eax, [esp + 0x11]
push eax
push dword [esi + 8]
call fcn.00532750
mov edi, eax
add esp, 8
test edi, edi
je 0x51d26e
mov dword [esi + 8], ebp
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
test edi, edi
je case.0x51d11a.1
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
lea eax, [esp + 0x11]
push eax
push dword [esi + 8]
call fcn.00534cc0
mov edi, eax
add esp, 8
mov eax, dword [esi + 8]
test dword [eax + 0x29c], 0x1000000
je 0x51d3e2
xor edi, edi
or ebp, 0xffffffff
push edi
push edi
push esi
call fcn.0051ca40
add esp, 0xc
cmp dword [esi + 0x24], 2
je case.0x51d11a.1
push esi
mov dword [esi + 0x24], 2
call fcn.00530060
jmp 0x51e014
test edi, edi
jne 0x51d38b
cmp dword [eax + 0xf0], 2
jne 0x51d3fc
cmp byte [eax + 0x298], 0
je case.0x51d11a.1
push eax
call fcn.0052f5b0
add esp, 4
test al, al
je case.0x51d11a.1
or ebp, 0xffffffff
cmp dword [esi + 0x24], 6
je case.0x51d11a.1
mov dword [esi + 0x24], 6
jmp case.0x51d11a.1
lea eax, [esp + 0x2a]
push eax
push 0
push dword [esi + 8]
call fcn.0052ba20
add esp, 0xc
mov edi, eax
cmp byte [esp + 0x2a], 0
je 0x51d4ca
test edi, edi
jne 0x51d4d2
mov eax, dword [esi + 8]
cmp dword [eax + 0xf0], 2
jne 0x51d462
cmp byte [eax + 0x298], 0
je 0x51d46f
push eax
call fcn.0052f600
add esp, 4
test al, al
je 0x51d485
cmp dword [esi + 0x24], 5
je case.0x51d11a.1
mov dword [esi + 0x24], 5
jmp case.0x51d11a.1
mov eax, dword [esi + 8]
or ebp, 0xffffffff
mov ecx, dword [eax + 0x29c]
and ecx, 0x8000
mov eax, ecx
neg eax
sbb eax, eax
add eax, 6
cmp dword [esi + 0x24], eax
je case.0x51d11a.1
mov dword [esi + 0x24], eax
xor eax, eax
test ecx, ecx
sete al
mov eax, dword [eax*4 + 0x5f1ca4]
test eax, eax
je case.0x51d11a.1
push esi
call eax
jmp 0x51e014
test edi, edi
je case.0x51d11a.1
push esi
call fcn.00440f30
push 1
push edi
push esi
call fcn.0051ca40
add esp, 0x10
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
mov edi, dword [esi + 8]
xor cl, cl
xor ebx, ebx
mov byte [esp + 0x11], cl
cmp byte [edi + 0x29a], cl
je 0x51d52c
test dword [edi + 0x29c], 0x2000
je 0x51d53c
mov eax, dword [edi + 0x2c8]
movzx ecx, cl
cmp dword [eax + 0x18], ebx
mov eax, 1
cmove ecx, eax
xor edi, edi
mov byte [esp + 0x11], cl
jmp 0x51d5df
test dword [edi + 0x29c], 0x2000
jne 0x51d5d3
push 0
push edi
call fcn.0052f690
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51d56b
mov edi, ebx
push esi
call fcn.00440f30
push 1
push ebx
push esi
call fcn.0051ca40
add esp, 0x10
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
cmp dword [edi + 0xf0], 2
jne 0x51d581
cmp byte [edi + 0x298], 0
jne 0x51d581
xor edi, edi
jmp 0x51d5df
mov eax, dword [edi + 0x29c]
and eax, 0x8040
cmp eax, 0x8040
jne 0x51d5a4
push edi
call fcn.0052f600
add esp, 4
test al, al
je 0x51d5a4
xor edi, edi
jmp 0x51d5df
mov eax, dword [edi + 0x2c8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x51d5c4
lea ecx, [esp + 0x11]
push ecx
push edi
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51d5c9
jmp 0x51d5d3
mov byte [esp + 0x11], 1
or dword [edi + 0x29c], 0x2000
mov eax, ebx
mov edi, ebx
test eax, eax
jne 0x51d54f
cmp byte [esp + 0x11], 0
jne 0x51d5fc
cmp dword [esi + 0x24], 7
je case.0x51d11a.1
mov dword [esi + 0x24], 7
jmp case.0x51d11a.1
cmp dword [esi + 0x24], 8
je 0x51d612
push esi
mov dword [esi + 0x24], 8
call fcn.0052f5d0
add esp, 4
or ebp, 0xffffffff
jmp case.0x51d11a.1
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x51d658
mov eax, dword [ecx + 0x2c8]
cmp dword [eax + 0x18], ebp
je 0x51d658
mov byte [esp + 0x11], 0
lea edx, [esp + 0x11]
mov eax, dword [ecx + 0x2c8]
push edx
push ecx
mov eax, dword [eax + 0x18]
call eax
mov ecx, dword [esi + 0x24]
mov edi, eax
add esp, 8
test edi, edi
jne 0x51d4d2
mov al, byte [esp + 0x11]
jmp 0x51d665
mov al, 1
mov ecx, 7
mov byte [esp + 0x11], al
xor edi, edi
test al, al
je case.0x51d11a.1
cmp ecx, 8
jmp 0x51d600
test byte [esi + 0xa9c], 0x20
je 0x51d69f
push 0
push dword [esi + 8]
call fcn.0052b790
add esp, 8
cmp dword [esi + 0x24], 0xe
je 0x51d695
mov dword [esi + 0x24], 0xe
xor edi, edi
or ebp, 0xffffffff
jmp case.0x51d11a.1
mov ecx, dword [esi + 8]
xor ebx, ebx
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x2c8]
mov eax, dword [eax + 8]
test eax, eax
je 0x51d6e9
lea edx, [esp + 0x13]
push edx
push ecx
call eax
mov ebx, eax
add esp, 8
mov edi, eax
test ebx, ebx
jne 0x51d6e9
cmp byte [esp + 0x13], al
je 0x51d6e9
mov ecx, dword [esp + 0x1c]
push 6
mov eax, dword [ecx]
and dword [eax + 0x588], 0xffffffdf
push dword [ecx]
call fcn.005382f0
add esp, 8
jmp 0x51d6f3
mov edi, ebx
test ebx, ebx
jne 0x51d786
cmp byte [esp + 0x13], 0
jne 0x51d749
test byte [esi + 0xfa4], 0x80
je 0x51d735
mov eax, dword [esi + 0xfa8]
cmp eax, 7
je 0x51d713
cmp eax, 5
jne 0x51d735
push 0
push 0
push esi
call fcn.0051ca40
add esp, 0xc
cmp dword [esi + 0x24], 0xe
je 0x51d72d
mov dword [esi + 0x24], 0xe
or ebp, 0xffffffff
jmp case.0x51d11a.1
cmp dword [esi + 0x24], 9
je 0x51d742
mov dword [esi + 0x24], 9
xor ebp, ebp
jmp case.0x51d11a.1
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x24]
test dword [eax + 0x29c], 0x1000
je 0x51d76e
cmp ecx, 0xa
je 0x51d767
mov dword [esi + 0x24], 0xa
xor ebp, ebp
jmp case.0x51d11a.1
cmp ecx, 0xb
je 0x51d612
mov dword [esi + 0x24], 0xb
or ebp, 0xffffffff
jmp case.0x51d11a.1
cmp ebx, 0x37
jne 0x51d83b
mov eax, dword [esi + 8]
test byte [eax + 0x29c], 2
je 0x51d83b
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], ebp
push ecx
push eax
call fcn.005307c0
add esp, 8
test eax, eax
je 0x51d7bc
mov edi, eax
mov byte [esp + 0x12], 1
push esi
call fcn.00440f30
push 0
push edi
push esi
call fcn.0051ca40
mov ecx, dword [esp + 0x24]
add esp, 0x10
test ecx, ecx
je 0x51d82a
test eax, eax
je 0x51d7ed
cmp eax, 0x37
je 0x51d7ed
push ecx
mov edi, eax
call dword [0x6412b4]
jmp 0x51e014
push 2
push ecx
push esi
call fcn.0052fda0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x51d81a
cmp dword [esi + 0x24], 2
je 0x51d815
push esi
mov dword [esi + 0x24], 2
call fcn.00530060
add esp, 4
or ebp, 0xffffffff
xor edi, edi
mov ecx, dword [esp + 0x14]
push ecx
call dword [0x6412b4]
jmp 0x51e014
push ecx
mov byte [esp + 0x16], 1
call dword [0x6412b4]
jmp 0x51e014
push esi
call fcn.00440f30
add esp, 4
cmp dword [esi + 8], ebp
je 0x51d4e4
push 0
push ebx
push esi
call fcn.0051ca40
add esp, 0xc
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x51d8b3
mov eax, dword [ecx + 0x2c8]
cmp dword [eax + 0x1c], ebp
je 0x51d8b3
mov byte [esp + 0x13], 0
lea edx, [esp + 0x13]
mov eax, dword [ecx + 0x2c8]
push edx
push ecx
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [esi + 0x24]
mov edi, eax
add esp, 8
test edi, edi
je 0x51d8bf
push esi
call fcn.00440f30
push 0
push edi
push esi
call fcn.0051ca40
add esp, 0x10
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
mov byte [esp + 0x13], 1
mov ecx, 9
xor edi, edi
cmp byte [esp + 0x13], 0
je case.0x51d11a.1
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x29c]
shr eax, 0xc
not eax
and eax, 1
or eax, 0xa
cmp ecx, eax
je 0x51d612
mov dword [esi + 0x24], eax
mov eax, dword [eax*4 + 0x5f1c90]
test eax, eax
je 0x51d612
push esi
call eax
add esp, 4
or ebp, 0xffffffff
jmp case.0x51d11a.1
mov edx, dword [esi + 8]
xor ecx, ecx
mov dword [esp + 0x34], ecx
xor ebx, ebx
mov dword [esp + 0x1c], edx
mov eax, dword [edx + 0x2c8]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x51d95d
lea ecx, [esp + 0x34]
push ecx
push edx
call eax
mov ecx, dword [esp + 0x3c]
mov ebx, eax
add esp, 8
mov edi, eax
test ebx, ebx
jne 0x51d95d
cmp ecx, 1
jne 0x51d95d
mov ecx, dword [esp + 0x1c]
push 6
mov eax, dword [ecx]
and dword [eax + 0x588], 0xffffffdf
push dword [ecx]
call fcn.005382f0
mov ecx, dword [esp + 0x3c]
add esp, 8
jmp 0x51d963
mov edi, ebx
test ebx, ebx
jne 0x51d982
test ecx, ecx
je 0x51d742
xor eax, eax
cmp ecx, 1
sete al
lea eax, [eax*2 + 9]
cmp dword [esi + 0x24], eax
jmp 0x51d8e0
push esi
call fcn.00440f30
push 0
push ebx
push esi
call fcn.0051ca40
add esp, 0x10
mov byte [esp + 0x12], 1
jmp case.0x51d11a.1
mov eax, dword [esi + 8]
mov edx, 0xb
test dword [eax + 0x29c], 0x8000000
je 0x51da03
mov ebp, dword [ebx + 0x24]
test ebp, ebp
je 0x51da03
mov ebx, dword [ebp]
cmp dword [ebx + 0x24], 2
je 0x51d9d2
push ebx
mov dword [ebx + 0x24], 2
call fcn.00530060
add esp, 4
mov eax, dword [esp + 0x24]
push 0
add eax, 0x24
push ebp
push eax
call fcn.005319d0
push 7
push 0
push 0
push ebx
call fcn.0051b860
add esp, 0x1c
or dword [ebx + 0xfa4], 0x2000
mov edx, dword [esi + 0x24]
mov ecx, edx
mov eax, dword [esi + 8]
cmp dword [eax + 0x2ec], 0xffffffff
jne 0x51da4b
cmp dword [eax + 0x2f0], 0xffffffff
jne 0x51da4b
test byte [esi + 0xfa4], 0x80
je 0x51da37
mov eax, dword [eax + 0x2c8]
test dword [eax + 0x44], 0x1000
jne 0x51da37
mov dword [esi + 0xfa8], 7
cmp ecx, 0xe
je 0x51da57
mov dword [esi + 0x24], 0xe
or ebp, 0xffffffff
jmp case.0x51d11a.1
cmp edx, 0xc
je 0x51da57
mov dword [esi + 0x24], 0xc
or ebp, 0xffffffff
jmp case.0x51d11a.1
push dword [esi + 8]
call fcn.00538420
add esp, 4
test eax, eax
je 0x51da78
mov edi, 0x2a
jmp case.0x51d11a.1
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
push esi
movups xmmword [eax], xmm0
call fcn.005392a0
mov edi, eax
add esp, 0x14
test edi, edi
jne case.0x51d11a.1
mov edx, dword [esi + 0x66c]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x668]
movlpd qword [esp + 0x1c], xmm0
test edx, edx
jl 0x51dafd
jg 0x51dab7
test ecx, ecx
je 0x51dafd
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0xb78]
push edx
push ecx
push dword [esi + 0xb8c]
movups xmmword [eax], xmm0
push dword [esi + 0xb88]
push dword [esi + 0xadc]
push dword [esi + 0xad8]
call fcn.00537f30
add esp, 0x38
mov dword [esp + 0x14], edx
mov ebx, eax
jmp 0x51db09
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov edx, dword [esi + 0x674]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x670]
movlpd qword [esp + 0x2c], xmm0
test edx, edx
jl 0x51db6a
jg 0x51db28
test ecx, ecx
je 0x51db6a
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0xb90]
push edx
push ecx
push dword [esi + 0xba4]
movups xmmword [eax], xmm0
push dword [esi + 0xba0]
push dword [esi + 0xad4]
push dword [esi + 0xad0]
call fcn.00537f30
add esp, 0x38
mov ecx, eax
jmp 0x51db72
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov eax, ebx
or eax, dword [esp + 0x14]
jne 0x51dba8
mov eax, ecx
or eax, edx
jne 0x51dba8
cmp dword [esi + 0x24], 0xc
je 0x51db8d
mov dword [esi + 0x24], 0xc
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
push esi
movups xmmword [eax], xmm0
call fcn.00538580
add esp, 0x14
jmp case.0x51d11a.1
mov eax, dword [esp + 0x14]
cmp eax, edx
jl 0x51dbc8
jg 0x51dbb6
cmp ebx, ecx
jb 0x51dbc8
push 0xa
push eax
push ebx
push esi
call fcn.0051b860
add esp, 0x10
jmp case.0x51d11a.1
push 0xa
push edx
push ecx
push esi
call fcn.0051b860
add esp, 0x10
jmp case.0x51d11a.1
mov edx, dword [esi + 0x66c]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x668]
mov dword [esp + 0x14], ebp
mov byte [esp + 0x2b], 0
mov byte [esp + 0x1b], 0
movlpd qword [esp + 0x1c], xmm0
test edx, edx
jl 0x51dc4d
jg 0x51dc07
test ecx, ecx
je 0x51dc4d
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0xb78]
push edx
push ecx
push dword [esi + 0xb8c]
movups xmmword [eax], xmm0
push dword [esi + 0xb88]
push dword [esi + 0xadc]
push dword [esi + 0xad8]
call fcn.00537f30
add esp, 0x38
mov dword [esp + 0x38], edx
mov ebx, eax
jmp 0x51dc59
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov edx, dword [esi + 0x674]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x670]
movlpd qword [esp + 0x2c], xmm0
test edx, edx
jl 0x51dcbe
jg 0x51dc78
test ecx, ecx
je 0x51dcbe
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi + 0xb90]
push edx
push ecx
push dword [esi + 0xba4]
movups xmmword [eax], xmm0
push dword [esi + 0xba0]
push dword [esi + 0xad4]
push dword [esi + 0xad0]
call fcn.00537f30
add esp, 0x38
mov dword [esp + 0x2c], eax
mov ecx, eax
jmp 0x51dcca
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
mov eax, ebx
mov dword [esp + 0x1c], edx
or eax, dword [esp + 0x38]
jne 0x51deb4
mov eax, ecx
or eax, edx
jne 0x51deb4
lea eax, [esp + 0x1b]
push eax
lea eax, [esp + 0x1e]
push eax
push esi
push dword [esi + 8]
call fcn.00530480
mov edi, eax
add esp, 0x10
mov al, byte [esp + 0x1a]
test al, al
jne 0x51ddbd
cmp edi, 0x38
je 0x51ddbd
cmp edi, 0x5c
je 0x51de7e
mov bl, byte [esp + 0x2b]
test edi, edi
jne 0x51de7e
test al, al
je 0x51de66
push esi
call fcn.00440f30
add esp, 4
test bl, bl
jne 0x51ddee
cmp dword [esi + 0x140], ebp
jne 0x51de42
cmp dword [esi + 0x13c], ebp
je 0x51dda4
push dword [esp + 0x14]
call dword [0x6412b4]
mov eax, dword [esi + 0x13c]
push 1
push eax
push esi
mov dword [esp + 0x24], eax
mov dword [esi + 0x13c], ebp
call fcn.0052fda0
push dword [esp + 0x24]
mov edi, eax
call dword [0x6412b4]
add esp, 0x14
test edi, edi
je 0x51dda4
push 1
push edi
push esi
mov byte [esp + 0x1e], 1
call fcn.0051ca40
mov edi, eax
add esp, 0xc
test edi, edi
jne case.0x51d11a.1
cmp dword [esi + 0x24], 0xe
je 0x51d72d
mov dword [esi + 0x24], 0xe
or ebp, 0xffffffff
jmp case.0x51d11a.1
lea eax, [esp + 0x14]
push eax
push dword [esi + 8]
call fcn.005307c0
add esp, 8
test eax, eax
jne 0x51de79
cmp dword [esp + 0x14], ebp
setne bl
test bl, bl
je 0x51de39
push esi
mov byte [esp + 0x1e], 1
call fcn.00440f30
add esp, 4
mov edi, 2
push 0
push 0
push esi
call fcn.0051ca40
push edi
push dword [esp + 0x24]
push esi
call fcn.0052fda0
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x51de2a
cmp dword [esi + 0x24], 2
je 0x51de27
push esi
mov dword [esi + 0x24], 2
call fcn.00530060
add esp, 4
or ebp, 0xffffffff
push dword [esp + 0x14]
call dword [0x6412b4]
jmp 0x51e014
mov al, byte [esp + 0x1a]
jmp 0x51dd1e
push dword [esp + 0x14]
call dword [0x6412b4]
mov eax, dword [esi + 0x140]
add esp, 4
mov dword [esp + 0x14], eax
mov edi, 3
mov dword [esi + 0x140], ebp
jmp 0x51ddf3
cmp byte [esp + 0x1b], 0
je case.0x51d11a.1
or ebp, 0xffffffff
jmp case.0x51d11a.1
test edi, edi
cmove edi, eax
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 0x2c8]
test byte [eax + 0x44], 2
jne 0x51de9d
cmp edi, 0x5c
je 0x51de9d
push 2
push ecx
call fcn.0052b790
add esp, 8
push esi
call fcn.00440f30
push 1
push edi
push esi
call fcn.0051ca40
add esp, 0x10
jmp case.0x51d11a.1
movups xmm0, xmmword [esp + 0x40]
sub esp, 0x10
mov eax, esp
push esi
movups xmmword [eax], xmm0
call fcn.00538580
add esp, 0x14
cmp dword [esi + 0x24], 0xd
je 0x51ded7
mov dword [esi + 0x24], 0xd
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
cmp eax, edx
jl 0x51deff
jg 0x51df07
mov ecx, dword [esp + 0x2c]
cmp ebx, ecx
jb 0x51df03
push 0xa
push eax
push ebx
push esi
call fcn.0051b860
add esp, 0x10
jmp case.0x51d11a.1
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
mov eax, edx
push 0xa
push eax
push ebx
push esi
call fcn.0051b860
add esp, 0x10
jmp case.0x51d11a.1
mov eax, dword [esi + 8]
or ebp, 0xffffffff
test eax, eax
je 0x51dfb7
test dword [eax + 0x29c], 0x8000000
je 0x51df83
mov eax, dword [ebx + 0x24]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x51df83
mov ebx, dword [eax]
cmp dword [ebx + 0x24], 2
je 0x51df5a
push ebx
mov dword [ebx + 0x24], 2
call fcn.00530060
mov eax, dword [esp + 0x20]
add esp, 4
push 0
push eax
mov eax, dword [esp + 0x2c]
add eax, 0x24
push eax
call fcn.005319d0
push 7
push 0
push 0
push ebx
call fcn.0051b860
add esp, 0x1c
or dword [ebx + 0xfa4], 0x2000
push 0
push edi
push esi
call fcn.0051ca40
mov ecx, dword [esi + 8]
add esp, 0xc
test edi, edi
cmove edi, eax
test ecx, ecx
je 0x51dfb7
push 0
lea eax, [esi + 0x18]
push eax
lea eax, [ecx + 0x350]
push eax
call fcn.005319d0
add esp, 0xc
mov dword [esi + 8], 0
test byte [esi + 0xfa4], 0x80
je 0x51dfd8
cmp dword [esi + 0xfa8], 7
je 0x51dfd8
cmp dword [esi + 0x24], 0
je case.0x51d11a.1
mov dword [esi + 0x24], 0
jmp case.0x51d11a.1
cmp dword [esi + 0x24], 0xf
je case.0x51d11a.1
mov eax, dword [esi + 0x78]
mov dword [esi + 0x24], 0xf
dec dword [eax + 0x10]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x51e007
push 0
lea eax, [esi + 0x18]
push eax
lea eax, [ecx + 0x350]
push eax
call fcn.005319d0
add esp, 0xc
push esi
mov dword [esi + 8], 0
call fcn.0051ba70
add esp, 4
mov eax, dword [esi + 0x24]
cmp eax, 0xf
jge 0x51e16f
test edi, edi
je 0x51e10d
mov ecx, dword [esp + 0x24]
add ecx, 0x24
mov dword [esp + 0x1c], ecx
mov ebp, dword [ecx]
test ebp, ebp
je 0x51e07e
mov ebx, dword [ebp]
cmp dword [ebx + 0x24], 2
je 0x51e059
push ebx
mov dword [ebx + 0x24], 2
call fcn.00530060
mov ecx, dword [esp + 0x20]
add esp, 4
push 0
push ebp
push ecx
call fcn.005319d0
push 7
push 0
push 0
push ebx
call fcn.0051b860
add esp, 0x1c
or dword [ebx + 0xfa4], 0x2000
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x51e0bd
cmp byte [esp + 0x12], 0
je 0x51e0cb
push 0
lea eax, [esi + 0x18]
cmp edi, 0x1c
push eax
lea eax, [ebx + 0x350]
sete byte [esp + 0x44]
push eax
call fcn.005319d0
push dword [esp + 0x48]
mov dword [esi + 8], 0
push ebx
push esi
call fcn.00525ec0
add esp, 0x18
jmp 0x51e0cb
cmp eax, 2
jne 0x51e0cb
push esi
call fcn.00440f30
add esp, 4
cmp dword [esi + 0x24], 0xf
je 0x51e16c
mov eax, dword [esi + 0x78]
mov dword [esi + 0x24], 0xf
dec dword [eax + 0x10]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x51e0fe
push 0
lea eax, [esi + 0x18]
push eax
lea eax, [ecx + 0x350]
push eax
call fcn.005319d0
add esp, 0xc
push esi
mov dword [esi + 8], 0
call fcn.0051ba70
jmp 0x51e169
mov eax, dword [esi + 8]
test eax, eax
je 0x51e16f
push eax
call fcn.00538420
add esp, 4
test eax, eax
je 0x51e16f
push 2
push dword [esi + 8]
mov edi, 0x2a
call fcn.0052b790
mov ecx, dword [esi + 0x24]
xor eax, eax
add esp, 8
cmp ecx, 0xe
setge al
add eax, 0xe
cmp ecx, eax
je 0x51e16c
mov dword [esi + 0x24], eax
cmp ecx, 0xe
jl 0x51e153
mov eax, dword [esi + 0x78]
dec dword [eax + 0x10]
xor eax, eax
cmp ecx, 0xe
setge al
mov eax, dword [eax*4 + 0x5f1cc8]
test eax, eax
je 0x51e16c
push esi
call eax
add esp, 4
or ebp, 0xffffffff
cmp dword [esi + 0x24], 0xf
jne 0x51e1bc
mov eax, dword [esi + 0xa84]
test eax, eax
je 0x51e188
push edi
push esi
call eax
add esp, 8
jmp 0x51e1af
lea eax, [esi + 0x2c]
mov dword [eax + 0xc], 1
push eax
push eax
mov dword [eax + 0x10], esi
mov dword [eax + 0x14], edi
mov eax, dword [esp + 0x2c]
push dword [eax + 0x18]
add eax, 0x14
push eax
call fcn.00531950
add esp, 0x10
xor ebp, ebp
cmp dword [esi + 0x24], 0x10
je 0x51e1bc
mov dword [esi + 0x24], 0x10
mov ebx, dword [esp + 0x24]
cmp ebp, 0xffffffff
je 0x51cf11
cmp byte [ebx + 0x79], 0
jne 0x51cf11
mov dword [esi + 0x28], edi
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004ed0cc
add esp, 0x44
ret
push eax
push str.In_state__d_with_no_conn__bail_out__n
push esi
call fcn.0052aac0
add esp, 0xc
mov eax, 4
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004ed0cc
add esp, 0x44
ret
mov dword [esi + 0x28], edi
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004ed0cc
add esp, 0x44
ret
mov ecx, dword [esp + 0x50]
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004ed0cc
add esp, 0x44
ret