Function at 0x51bd20
Capabilities:
Check http status code

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x63b1ea
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push ecx
mov eax, 0x10714
call fcn.006272c0
mov eax, dword [0x6a6040]
xor eax, ebp
mov dword [ebp - 0x1c], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, ecx
mov dword [ebp - 0x10644], eax
cmp dword [eax + 0x406], 0xffffffff
mov dword [ebp - 0x106a4], eax
mov dword [ebp - 0x106b0], eax
jne 0x51c0a4
cmp byte [eax + 0x25a], 0
lea esi, [eax + 0x3f6]
je 0x51bfd5
push dword [esi]
add eax, 0x40a
lea ecx, [ebp - 0x10658]
push eax
call fcn.005a56f0
push 0xffffffffffffffff
push 4
push str._r_n_r_n
push 0
lea ecx, [ebp - 0x10658]
mov dword [ebp - 4], 0
call fcn.005afe70
mov edi, eax
mov dword [ebp - 0x10650], edi
test edi, edi
js 0x51bf2c
nop
push ecx
push 5
or edi, 0xffffffff
mov dword [ebp - 0x106a0], 0xffffffff
push str.HTTP_
lea ecx, [ebp - 0x10658]
mov dword [ebp - 0x1069c], edi
call fcn.0041aa90
test al, al
je 0x51ecf8
push 0x20
lea ecx, [ebp - 0x10658]
call fcn.005b0390
mov edx, eax
test edx, edx
jle 0x51ecf8
lea eax, [ebp - 0x10658]
mov dword [ebp - 0x10694], edx
lea ecx, [ebp - 0x10698]
mov dword [ebp - 0x10698], eax
mov byte [ebp - 0x10690], 0
call fcn.0041b200
cmp byte [eax], 0x20
jne 0x51be67
nop
inc edx
lea ecx, [ebp - 0x10698]
mov dword [ebp - 0x10694], edx
call fcn.0041b200
cmp byte [eax], 0x20
je 0x51be50
mov eax, dword [ebp - 0x10658]
test eax, eax
je 0x51be76
mov eax, dword [eax + 0xc]
jmp 0x51be7b
mov eax, 0x651f68
push 0x6566f0
push 0
lea ecx, [eax + edx]
push 0xffffffffffffffff
lea edx, [ebp - 0x106a0]
call fcn.005a4920
mov eax, dword [ebp - 0x106a0]
add esp, 0xc
mov edi, dword [ebp - 0x1069c]
cmp eax, 0x64
jne 0x51bf3c
test edi, edi
jne 0x51bf3c
mov ecx, dword [ebp - 0x10650]
mov eax, 0xfffffffc
mov edx, dword [ebp - 0x10644]
sub eax, ecx
add dword [esi], eax
push dword [esi]
lea eax, [ecx + 0x40e]
add eax, edx
lea edi, [edx + 0x40a]
push eax
push edi
call fcn.00609db0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10658]
call fcn.004250c0
push dword [esi]
lea ecx, [ebp - 0x10658]
push edi
call fcn.005a56f0
push 0xffffffffffffffff
push 4
push str._r_n_r_n
push 0
lea ecx, [ebp - 0x10658]
mov dword [ebp - 4], 0
call fcn.005afe70
mov dword [ebp - 0x10650], eax
test eax, eax
jns 0x51bde0
lea ecx, [ebp - 0x10658]
call fcn.004250c0
jmp 0x51ecda
cmp eax, 0xc8
jne 0x51ecf8
test edi, edi
jne 0x51ecf8
mov edi, dword [ebp - 0x10650]
lea ecx, [ebp - 0x10658]
push 0xffffffffffffffff
push 0
lea eax, [edi + 4]
push eax
call fcn.005b0300
test eax, eax
jns 0x51bf9a
push 0xffffffffffffffff
push 0xd
lea eax, [edi + 4]
push eax
lea ecx, [ebp - 0x10658]
call fcn.005b0300
test eax, eax
jns 0x51bf9a
push 0xffffffffffffffff
push 0xa
lea eax, [edi + 4]
push eax
lea ecx, [ebp - 0x10658]
call fcn.005b0300
test eax, eax
js 0x51bf2c
mov ecx, dword [ebp - 0x10644]
mov eax, 0xfffffffc
sub eax, edi
add dword [esi], eax
push dword [esi]
lea eax, [ecx + 0x40e]
add eax, edi
push eax
lea eax, [ecx + 0x40a]
push eax
call fcn.00609db0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10658]
call fcn.004250c0
mov edx, dword [esi]
xor edi, edi
test edx, edx
jle 0x51c0a4
mov esi, dword [ebp - 0x10644]
lea ecx, [esi + 0x40a]
nop dword [eax]
mov al, byte [ecx]
test al, al
je 0x51c009
cmp al, 0xd
je 0x51c009
cmp al, 0xa
je 0x51c009
inc edi
inc ecx
cmp edi, edx
jl 0x51bff0
jmp 0x51c0a4
lea eax, [esi + 0x40a]
mov byte [esi + edi + 0x40a], 0
push eax
push str.Remote_server_string:__s_n
push 0x6a6e70
mov byte [esi + 0x29f], 0
inc edi
call fcn.0042abc0
add esp, 0xc
lea ecx, [esi + 0x40a]
mov edx, str.RusRoute
push 9
call fcn.005a4c60
add esp, 4
test al, al
je 0x51ed7d
mov eax, dword [esi + 0x3f6]
sub eax, edi
push eax
mov dword [esi + 0x3f6], eax
lea eax, [esi + 0x40a]
add eax, edi
push eax
lea eax, [esi + 0x40a]
push eax
call fcn.00609db0
add esp, 0xc
mov dword [esi + 0x406], 0
mov ecx, esi
mov byte [esi + 0x257], 1
push 0
call fcn.0051f950
push 1
push 0
lea ecx, [esi + 0x293]
push 0x3938700
call fcn.0041b220
mov ecx, dword [ebp - 0x10644]
mov eax, dword [ecx + 0x406]
cmp eax, 0xffffffff
jne 0x51c0ca
cmp dword [ecx + 0x3f6], 0x200
jge 0x51ed7b
jmp 0x51ecda
test eax, eax
js 0x51ecda
mov eax, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor edi, edi
mov dword [ebp - 0x1064c], edi
mov dword [ebp - 0x10658], eax
jmp 0x51c0fa
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10644]
mov edi, dword [ebp - 0x1064c]
mov esi, dword [ecx + 0x3f6]
mov edx, esi
sub edx, edi
cmp edx, 0x19
jb 0x51eca5
lea eax, [ecx + 0x40a]
add eax, edi
mov dword [ebp - 0x1065c], eax
movzx eax, word [eax + 3]
mov ecx, eax
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
lea eax, [ecx + 0x19]
cmp edx, eax
jl 0x51ec9f
mov eax, dword [ebp - 0x1064c]
xorps xmm0, xmm0
mov esi, dword [ebp - 0x1065c]
add eax, 0x19
push 0xffffffffffffffff
push dword [0x6a705c]
add eax, ecx
movq qword [ebp - 0x10530], xmm0
mov dword [ebp - 0x1064c], eax
lea edi, [esi + 0x19]
mov dword [ebp - 0x10670], eax
movups xmmword [ebp - 0x10540], xmm0
mov byte [ebp - 0x10528], 0
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51c189
xor eax, eax
jmp 0x51c192
test eax, eax
jne 0x51c1a4
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [eax + 0x3ea]
mov al, byte [ecx + 0x1a]
mov byte [ebp - 0x1053f], al
mov al, byte [ecx + 0x19]
mov ecx, 0x6a705c
mov byte [ebp - 0x1053e], al
call fcn.005e0810
movzx eax, byte [esi]
dec eax
cmp eax, 0xfc
ja case.0x51c1e2.2
movzx eax, byte [eax + 0x51ee7c]
jmp dword [eax*4 + 0x51ee40]
mov ecx, dword [ebp - 0x10644]
push 0xffffffffffffffff
mov byte [ecx + 0x29f], 0
mov eax, dword [esi + 0xd]
mov dword [ecx + 0x25e], eax
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51c218
xor eax, eax
jmp 0x51c221
test eax, eax
jne 0x51c233
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
cmp dword [esi + 0xd], 0
mov byte [ebp - 0x10651], 0
je 0x51c273
mov ecx, dword [0x6ac5f8]
add ecx, 0x238
push ecx
call fcn.00531080
test al, al
je 0x51c273
mov ecx, dword [0x6ac5f8]
add ecx, 0x248
push ecx
call fcn.00531080
mov byte [ebp - 0x10645], 1
test al, al
jne 0x51c27a
mov byte [ebp - 0x10645], 0
movzx eax, word [esi + 3]
mov edx, eax
shl eax, 8
movzx eax, ax
mov dword [ebp - 0x10660], eax
mov ax, dx
mov ch, al
mov cl, ah
test cx, cx
je 0x51c404
cmp dword [esi + 0xd], 0
je 0x51c404
mov esi, dword [0x6ac5f8]
mov ecx, edx
mov eax, dword [ebp - 0x10660]
shr ecx, 8
movzx eax, ax
mov edx, dword [esi + 0x2c0]
or ecx, eax
add edx, dword [esi + 0x2b0]
mov dword [ebp - 0x10670], esi
cmp ecx, edx
jne 0x51c404
mov esi, dword [esi + 0x2b0]
mov eax, esi
mov dword [ebp - 0x10664], esi
test edi, edi
jne 0x51c2f5
xor eax, eax
test esi, esi
cmovs eax, esi
mov dword [ebp - 0x10664], eax
push eax
mov eax, dword [ebp - 0x10670]
push edi
push dword [eax + 0x2ac]
call fcn.00609db0
mov eax, dword [ebp - 0x10670]
add esp, 0xc
sub esi, dword [ebp - 0x10664]
add esi, 2
mov eax, dword [eax + 0x2ac]
add eax, dword [ebp - 0x10664]
push esi
push 0
push eax
call fcn.00608810
mov eax, dword [0x6ac5f8]
add esp, 0xc
mov dword [ebp - 0x10660], eax
mov ecx, dword [eax + 0x2b0]
mov esi, dword [eax + 0x2c0]
add ecx, edi
mov edi, esi
jne 0x51c356
xor edi, edi
test esi, esi
cmovs edi, esi
push edi
push ecx
push dword [eax + 0x2bc]
call fcn.00609db0
mov eax, dword [ebp - 0x10660]
add esp, 0xc
sub esi, edi
add esi, 2
mov eax, dword [eax + 0x2bc]
push esi
add eax, edi
push 0
push eax
call fcn.00608810
mov esi, dword [0x6ac5f8]
add esp, 0xc
lea eax, [esi + 0x2ac]
push eax
lea ecx, [esi + 0x238]
call fcn.005f7420
test al, al
je 0x51c3b7
lea eax, [esi + 0x2bc]
push eax
lea ecx, [esi + 0x248]
call fcn.005f7420
test al, al
jne 0x51c3be
mov byte [ebp - 0x10651], 1
mov ecx, 0x6a705c
call fcn.005e0810
cmp byte [ebp - 0x10651], 0
mov eax, dword [ebp - 0x10644]
mov dword [eax + 0x406], 1
je 0x51c431
mov eax, dword [0x6aefbc]
push ecx
mov ecx, esp
test eax, eax
je 0x51c41d
lock inc dword [eax]
mov dword [ecx], eax
mov ecx, 3
call fcn.004f95f0
add esp, 4
jmp case.0x51c1e2.2
mov ecx, 0x6a705c
call fcn.005e0810
cmp byte [ebp - 0x10645], 0
je 0x51ed89
jmp 0x51c3c8
xor eax, eax
mov dword [ecx], eax
lea ecx, [eax + 3]
call fcn.004f95f0
add esp, 4
jmp case.0x51c1e2.2
cmp dword [eax + 0x23412], 0
jne 0x51c471
mov eax, dword [0x6aefbc]
push ecx
mov ecx, esp
test eax, eax
je 0x51c45d
lock inc dword [eax]
mov dword [ecx], eax
mov ecx, 4
call fcn.004f95f0
add esp, 4
jmp case.0x51c1e2.2
xor eax, eax
mov dword [ecx], eax
lea ecx, [eax + 4]
call fcn.004f95f0
add esp, 4
jmp case.0x51c1e2.2
push 2
mov ecx, eax
call fcn.0051f950
jmp case.0x51c1e2.2
mov edi, dword [ebp - 0x10644]
mov byte [edi + 0x257], 0
mov eax, dword [esi + 0xd]
test eax, eax
je 0x51edab
cmp eax, 0x1000000
jne 0x51c4ba
push str.Server_can_not_decrypt_login_request_by_RSA
lea ecx, [ebp - 0x10664]
call fcn.005a5400
mov dword [ebp - 4], 3
jmp 0x51edc2
push str.Unknown_login_error
lea ecx, [ebp - 0x10650]
call fcn.005a5400
lea eax, [ebp - 0x10650]
mov ecx, 0x6ad9d8
push eax
lea eax, [ebp - 0x10660]
push eax
call fcn.004f9380
lea ecx, [ebp - 0x10660]
call fcn.004250c0
lea eax, [ebp - 0x10650]
push eax
push 0x6549c8
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
lea ecx, [ebp - 0x10650]
call fcn.004250c0
push ecx
jmp 0x51edfe
movzx eax, word [esi + 3]
mov esi, eax
shl eax, 8
shr esi, 8
movzx eax, ax
or esi, eax
cmp esi, 0x13
jae 0x51c53d
mov ecx, dword [ebp - 0x10644]
push 0x651eaf
jmp 0x51ee1e
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51c556
xor eax, eax
jmp 0x51c55f
test eax, eax
jne 0x51c571
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov eax, dword [eax + 0x3ea]
movups xmm0, xmmword [eax + 0x1b]
movups xmmword [ebp - 0x105a0], xmm0
movups xmm0, xmmword [eax + 0x2b]
movups xmmword [ebp - 0x10590], xmm0
mov ecx, 0x6a705c
mov dword [ebp - 4], 4
call fcn.005e0810
mov ecx, dword [ebp - 0x1065c]
lea eax, [ebp - 0x105a0]
push 0xffffffffffffffff
push eax
mov eax, dword [ebp - 0x10644]
push ecx
mov ecx, dword [eax + 0x3ea]
call fcn.00521ca0
test eax, eax
jns 0x51c5f6
push str.Gost_decrypt_error_n
push 0x6a6e70
call fcn.0042abc0
mov eax, dword [ebp - 0x10644]
add esp, 8
cmp dword [eax + 0x406], 3
je 0x51c5f6
push 0x651eaf
mov ecx, eax
jmp 0x51ee1e
mov ecx, dword [edi + 3]
lea eax, [esi + edi]
mov esi, dword [edi + 0xb]
mov edx, dword [edi + 7]
mov dword [ebp - 0x10660], eax
mov al, byte [edi]
mov byte [ebp - 0x10645], al
mov al, byte [edi + 1]
mov byte [ebp - 0x10651], al
mov al, byte [edi + 2]
mov byte [ebp - 0x10669], al
mov eax, dword [edi + 0xf]
bswap esi
mov dword [ebp - 0x1067c], esi
bswap ecx
mov dword [ebp - 0x10664], ecx
bswap edx
bswap eax
test esi, esi
je 0x51c98f
mov eax, dword [ebp - 0x106b0]
mov cl, byte [ebp - 0x10645]
mov dword [eax + 0x406], 3
mov eax, dword [ebp - 0x10644]
mov eax, dword [eax + 0x3ea]
mov byte [eax + 0x18], cl
mov eax, dword [ebp - 0x10644]
mov cl, byte [ebp - 0x10651]
mov eax, dword [eax + 0x3ea]
mov byte [eax + 0x19], cl
mov eax, dword [ebp - 0x10644]
mov cl, byte [ebp - 0x10669]
mov eax, dword [eax + 0x3ea]
mov byte [eax + 0x1a], cl
mov eax, dword [ebp - 0x10644]
mov ecx, dword [ebp - 0x10664]
mov eax, dword [eax + 0x3ea]
mov dword [eax + 0xc], edx
lea eax, [edi + 0x37]
cmp eax, dword [ebp - 0x10660]
ja 0x51c6cc
mov eax, dword [ebp - 0x10644]
movups xmm0, xmmword [edi + 0x13]
mov eax, dword [eax + 0x3ea]
movups xmmword [eax + 0x3b], xmm0
movups xmm0, xmmword [edi + 0x23]
movups xmmword [eax + 0x4b], xmm0
mov dword [ebp - 0x10650], 0
push esi
push ecx
push str.VPN_Login_success._Id_1_Ip_2
lea eax, [ebp - 0x10650]
push str._d_I
push eax
call fcn.005ac040
add esp, 0x14
lea eax, [ebp - 0x10650]
push eax
push 0x6549c8
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51c723
xor eax, eax
jmp 0x51c72c
test eax, eax
jne 0x51c73e
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [0x6ac5f8]
mov dword [0x6ad35c], esi
test eax, eax
je 0x51c754
mov dword [eax + 8], 0
mov ecx, dword [ebp - 0x10644]
mov edi, dword [ebp - 0x10664]
mov eax, dword [ecx + 0x3ea]
mov dword [eax + 0x10], esi
mov eax, dword [ecx + 0x3ea]
mov dword [eax + 8], edi
mov esi, dword [0x6ac16c]
push 0xffffffffffffffff
push dword [esi]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51c792
mov dword [esi + 8], 0
jmp 0x51c796
test eax, eax
jne 0x51c79f
inc dword [esi + 0xc]
inc dword [esi + 8]
inc dword [esi + 4]
mov eax, dword [ebp - 0x1067c]
mov dword [0x6ada18], eax
mov dword [0x6ada14], edi
mov byte [ebp - 4], 5
mov ecx, dword [0x6ac16c]
call fcn.005e0810
mov esi, dword [ebp - 0x10644]
mov eax, dword [esi + 0x3ea]
cmp dword [eax + 0x1d1], 0
jne 0x51c935
cmp dword [esi + 0x2341e], 2
jne 0x51c935
push 0x44
mov byte [ebp - 4], 8
call fcn.00606edf
mov ecx, eax
add esp, 4
mov dword [ebp - 0x106ec], ecx
mov byte [ebp - 4], 9
mov eax, dword [esi + 4]
push dword [eax + 0xae]
call fcn.005d7110
mov esi, eax
mov byte [ebp - 4], 0xa
push 0x336
mov dword [ebp - 0x10660], esi
call fcn.00606edf
add esp, 4
mov dword [ebp - 0x106e8], eax
push ecx
mov byte [ebp - 4], 0xb
mov ecx, eax
push dword [esi + 0x3c]
call fcn.00523b50
mov edi, dword [ebp - 0x10644]
mov byte [ebp - 4], 0xa
mov ecx, dword [edi + 0x3ea]
mov dword [ecx + 0x1d1], eax
mov eax, dword [edi + 0x3ea]
cmp dword [eax + 0x1d1], 0
je 0x51ee23
lea eax, [esi + 0x10]
push eax
push 0
push esi
push 0x5e0ec0
push 0
push 0
call fcn.0061408e
mov edi, dword [ebp - 0x1064c]
add esp, 0x18
mov dword [esi + 0xc], eax
mov dword [ebp - 4], 5
jmp 0x51c93b
mov edi, dword [ebp - 0x1064c]
mov ecx, 0x6a705c
mov esi, 0xe
call fcn.005e0810
mov eax, dword [0x6aefbc]
push ecx
mov ecx, esp
test eax, eax
je 0x51c95b
lock inc dword [eax]
jmp 0x51c95d
xor eax, eax
mov dword [ecx], eax
mov ecx, esi
call fcn.004f95f0
add esp, 4
mov ecx, 3
call fcn.0051fdc0
mov ecx, dword [ebp - 0x10650]
test ecx, ecx
je 0x51c9f1
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x51c9f1
push ecx
call fcn.005a47b0
jmp 0x51c9f1
mov ecx, dword [ebp - 0x106b0]
mov dword [ecx + 0x406], 2
test eax, eax
jne 0x51c9c4
mov eax, dword [0x6aefbc]
push ecx
mov ecx, esp
test eax, eax
je 0x51c9bb
lock inc dword [eax]
mov dword [ecx], eax
mov ecx, 4
jmp 0x51c9e3
xor eax, eax
mov dword [ecx], eax
lea ecx, [eax + 4]
jmp 0x51c9e3
cmp eax, 0xb
jne 0x51c9eb
mov eax, dword [0x6aefbc]
push ecx
mov ecx, esp
test eax, eax
je 0x51c9da
lock inc dword [eax]
jmp 0x51c9dc
xor eax, eax
mov dword [ecx], eax
mov ecx, 0x28
call fcn.004f95f0
add esp, 4
mov edi, dword [ebp - 0x1064c]
mov ecx, dword [ebp - 0x10644]
push 1
push 0
push 1
lea ecx, [ecx + 0x3b9]
call fcn.0041b220
mov ecx, dword [ebp - 0x10644]
mov dword [ebp - 4], 0xffffffff
jmp 0x51c0fa
movzx eax, word [esi + 3]
mov ecx, eax
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
mov dword [ebp - 0x10650], ecx
cmp ecx, 0x25
jb case.0x51c1e2.2
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51ca53
xor eax, eax
jmp 0x51ca5c
test eax, eax
jne 0x51ca6e
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov esi, dword [eax + 0x3ea]
cmp dword [esi + 0x1d1], 0
je 0x51ec26
mov ecx, dword [ebp - 0x1065c]
mov eax, dword [ecx + 9]
bswap eax
cmp eax, dword [esi + 8]
jne 0x51ec26
xorps xmm0, xmm0
movups xmmword [ebp - 0x10560], xmm0
movups xmmword [ebp - 0x10550], xmm0
mov dword [ebp - 4], 0xe
mov al, byte [ecx + 1]
cmp al, byte [esi + 0x18]
jne 0x51cacc
movups xmm0, xmmword [esi + 0x1b]
movups xmmword [ebp - 0x10560], xmm0
movups xmm0, xmmword [esi + 0x2b]
jmp 0x51cae0
cmp al, byte [esi + 0x19]
jne 0x51cae7
movups xmm0, xmmword [esi + 0x3b]
movups xmmword [ebp - 0x10560], xmm0
movups xmm0, xmmword [esi + 0x4b]
movups xmmword [ebp - 0x10550], xmm0
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10560]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51ebc0
mov ecx, dword [ebp - 0x1065c]
lea eax, [ebp - 0x10560]
push 0xc
push eax
push ecx
mov ecx, esi
call fcn.00521ca0
test eax, eax
js 0x51ebc0
mov esi, dword [ebp - 0x10650]
lea eax, [edi + 0xc]
sub esi, 0xc
push esi
push eax
lea eax, [ebp - 0x10540]
mov dword [ebp - 0x10650], esi
push eax
call fcn.00609db0
mov al, byte [ebp - 0x10540]
add esp, 0xc
cmp al, 0x13
je 0x51cb58
cmp al, 5
jne 0x51ebc0
mov eax, dword [ebp - 0x1053d]
movzx ecx, word [ebp - 0x1053d]
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
add ecx, 0x19
cmp ecx, esi
jne 0x51ebc0
mov eax, dword [edi + 4]
mov ecx, dword [edi]
bswap eax
mov dword [ebp - 0x10664], eax
mov dword [ebp - 0x10670], eax
mov eax, dword [edi + 8]
bswap eax
mov dword [ebp - 0x10680], eax
mov eax, dword [ebp - 0x10644]
bswap ecx
mov eax, dword [eax + 0x3ea]
mov edi, dword [eax + 0x1d1]
test byte [edi + 0x2d6], 3
jne 0x51ebc0
xor edx, edx
mov eax, ecx
div dword [edi + 0x2ce]
mov eax, dword [edi + 0x2d2]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51ebc0
cmp dword [eax + 4], ecx
je 0x51cbf8
mov eax, dword [eax]
test eax, eax
jne 0x51cbd7
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
mov edi, dword [eax + 8]
mov dword [ebp - 0x1067c], edi
mov dword [ebp - 0x106ac], edi
test edi, edi
je 0x51ebc0
cmp dword [ebp - 0x10664], 0xffffffff
je 0x51cdae
cmp dword [edi + 0x3be], 3
jge 0x51cc8f
mov eax, dword [ebp - 0x10644]
mov dword [ebp - 0x10660], edi
add edi, 0x26d
push edi
mov eax, dword [eax + 0x3ea]
mov esi, dword [eax + 0x1d1]
lea ecx, [esi + 0x2be]
call fcn.0052a5e0
mov eax, dword [ebp - 0x10664]
lea ecx, [esi + 0x2be]
mov dword [edi], eax
lea eax, [ebp - 0x10660]
push ecx
push eax
push edi
call fcn.0052f100
mov edi, dword [ebp - 0x1067c]
push 1
push 0
push 0x7270e00
lea ecx, [edi + 0x35c]
mov dword [edi + 0x3be], 3
call fcn.0041b220
mov esi, dword [ebp - 0x10644]
mov eax, dword [esi + 0x3ea]
mov ecx, dword [eax + 0x1d1]
lea eax, [ebp - 0x106ac]
add ecx, 0x2e3
push ecx
push eax
lea eax, [ebp - 0x10670]
push eax
call fcn.0052f100
mov eax, dword [ebp - 0x10680]
mov ecx, dword [esi + 0x3ea]
mov dword [ebp - 0x10660], eax
add ecx, 0xa5
push 0
lea eax, [ebp - 0x10660]
push eax
lea eax, [ebp - 0x10670]
push eax
call fcn.00429d00
mov eax, dword [esi + 0x3ea]
mov esi, edi
mov eax, dword [eax + 0x1d1]
mov dword [ebp - 0x10660], eax
test byte [eax + 0x320], 3
jne 0x51cd42
mov esi, dword [ebp - 0x10660]
xor edx, edx
mov ecx, dword [edi + 0x275]
mov eax, ecx
div dword [esi + 0x318]
mov eax, dword [esi + 0x31c]
mov esi, edi
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51cd42
nop dword [eax]
cmp dword [eax + 4], ecx
je 0x51cd3f
mov eax, dword [eax]
test eax, eax
jne 0x51cd30
mov esi, edi
jmp 0x51cd42
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x10644]
lea edx, [ebp - 0x106ac]
mov eax, dword [eax + 0x3ea]
mov ecx, dword [eax + 0x1d1]
lea eax, [edi + 0x275]
add ecx, 0x308
push ecx
push edx
push eax
call fcn.0052ecf0
cmp esi, edi
je 0x51cd9d
push 1
push 0
lea ecx, [esi + 0x2c9]
push 1
call fcn.0041b220
mov eax, dword [esi + 4]
xor cl, cl
mov eax, dword [eax + 0xae]
lea esi, [eax + 0x37]
lock or byte [esi], cl
push dword [eax + 0x33]
call dword [sym.imp.WS2_32.dll_WSASetEvent]
mov eax, dword [ebp - 0x10650]
push ecx
lea ecx, [ebp - 0x10540]
add eax, ecx
jmp 0x51cdb7
lea eax, [ebp - 0x10540]
push ecx
add eax, esi
push 1
push eax
lea eax, [ebp - 0x10540]
mov ecx, edi
push eax
call fcn.00523840
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
movzx eax, word [esi + 3]
mov ecx, eax
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
cmp ecx, 8
jb case.0x51c1e2.2
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51ce11
xor eax, eax
jmp 0x51ce1a
test eax, eax
jne 0x51ce2c
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov esi, dword [eax + 0x3ea]
cmp dword [esi + 0x1d1], 0
je 0x51ec26
mov ecx, dword [ebp - 0x1065c]
mov eax, dword [ecx + 9]
bswap eax
cmp eax, dword [esi + 8]
jne 0x51ec26
xorps xmm0, xmm0
movups xmmword [ebp - 0x10560], xmm0
movups xmmword [ebp - 0x10550], xmm0
mov dword [ebp - 4], 0xf
mov al, byte [ecx + 1]
cmp al, byte [esi + 0x18]
jne 0x51ce8a
movups xmm0, xmmword [esi + 0x1b]
movups xmmword [ebp - 0x10560], xmm0
movups xmm0, xmmword [esi + 0x2b]
jmp 0x51ce9e
cmp al, byte [esi + 0x19]
jne 0x51cea5
movups xmm0, xmmword [esi + 0x3b]
movups xmmword [ebp - 0x10560], xmm0
movups xmm0, xmmword [esi + 0x4b]
movups xmmword [ebp - 0x10550], xmm0
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10560]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51ebc0
mov ecx, dword [ebp - 0x1065c]
lea eax, [ebp - 0x10560]
push 8
push eax
push ecx
mov ecx, esi
call fcn.00521ca0
test eax, eax
js 0x51ebc0
mov dword [ebp - 0x1053f], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x10533], xmm0
mov dword [ebp - 0x1052b], 0
mov byte [ebp - 0x10540], 3
mov dword [ebp - 0x1053b], 0xfeffffff
mov dword [ebp - 0x10537], 0xfeffffff
mov eax, dword [edi + 4]
bswap eax
mov dword [ebp - 0x10533], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [edi]
bswap ecx
mov eax, dword [eax + 0x3ea]
mov esi, dword [eax + 0x1d1]
test byte [esi + 0x2d6], 3
jne 0x51ebc0
xor edx, edx
mov eax, ecx
div dword [esi + 0x2ce]
mov eax, dword [esi + 0x2d2]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51ebc0
cmp dword [eax + 4], ecx
je 0x51cf87
mov eax, dword [eax]
test eax, eax
jne 0x51cf66
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x51ebc0
push ecx
push 1
lea eax, [ebp - 0x10527]
push eax
lea eax, [ebp - 0x10540]
push eax
call fcn.00523840
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
movzx eax, word [esi + 3]
mov ecx, eax
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
mov dword [ebp - 0x10650], ecx
cmp ecx, 4
jb case.0x51c1e2.2
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51cff7
xor eax, eax
jmp 0x51d000
test eax, eax
jne 0x51d012
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov esi, dword [eax + 0x3ea]
cmp dword [esi + 0x1d1], 0
je 0x51ec26
mov ecx, dword [ebp - 0x1065c]
mov eax, dword [ecx + 9]
bswap eax
cmp eax, dword [esi + 8]
jne 0x51ec26
xorps xmm0, xmm0
movups xmmword [ebp - 0x10560], xmm0
movups xmmword [ebp - 0x10550], xmm0
mov dword [ebp - 4], 0x10
mov al, byte [ecx + 1]
cmp al, byte [esi + 0x18]
jne 0x51d070
movups xmm0, xmmword [esi + 0x1b]
movups xmmword [ebp - 0x10560], xmm0
movups xmm0, xmmword [esi + 0x2b]
jmp 0x51d084
cmp al, byte [esi + 0x19]
jne 0x51d08b
movups xmm0, xmmword [esi + 0x3b]
movups xmmword [ebp - 0x10560], xmm0
movups xmm0, xmmword [esi + 0x4b]
movups xmmword [ebp - 0x10550], xmm0
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10560]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51ebc0
mov ecx, dword [ebp - 0x1065c]
lea eax, [ebp - 0x10560]
push 4
push eax
push ecx
mov ecx, esi
call fcn.00521ca0
test eax, eax
js 0x51ebc0
mov eax, dword [ebp - 0x10650]
sub eax, 4
push eax
mov dword [ebp - 0x10650], eax
lea eax, [edi + 4]
push eax
lea eax, [ebp - 0x10540]
push eax
call fcn.00609db0
mov esi, dword [edi]
add esp, 0xc
mov edi, dword [ebp - 0x10650]
bswap esi
mov dword [ebp - 0x10664], esi
cmp edi, 0x1d
jb 0x51d18f
cmp byte [ebp - 0x10540], 0x15
jne 0x51d18f
mov eax, dword [ebp - 0x1053d]
movzx ecx, word [ebp - 0x1053d]
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
add ecx, 0x19
cmp ecx, edi
jne 0x51d18f
mov eax, dword [ebp - 0x10644]
mov eax, dword [eax + 0x3ea]
mov ecx, dword [eax + 0x1d1]
test byte [ecx + 0x2d6], 3
jne 0x51d18f
xor edx, edx
mov eax, esi
div dword [ecx + 0x2ce]
mov eax, dword [ecx + 0x2d2]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51d18f
cmp dword [eax + 4], esi
je 0x51d170
mov eax, dword [eax]
test eax, eax
jne 0x51d163
jmp 0x51d18f
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x51d18f
push ecx
push 1
lea eax, [ebp - 0x10540]
add eax, edi
push eax
lea eax, [ebp - 0x10540]
push eax
call fcn.00523840
mov esi, dword [ebp - 0x10644]
mov eax, dword [esi + 0x3ea]
mov ecx, dword [eax + 0x1d1]
lea eax, [ebp - 0x10664]
add ecx, 0x2e3
push eax
call fcn.0052a5e0
mov ecx, dword [esi + 0x3ea]
lea eax, [ebp - 0x10664]
add ecx, 0x187
push eax
call fcn.00428b10
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
cmp dword [ecx + 0x406], 3
jne 0x51c0f4
mov eax, dword [esi + 5]
bswap eax
cmp eax, 0xfffffffe
jne 0x51c0f4
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51d21b
xor eax, eax
jmp 0x51d224
test eax, eax
jne 0x51d236
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [esi + 9]
bswap ecx
mov edx, dword [eax + 0x3ea]
cmp ecx, dword [edx + 8]
jne 0x51d954
movzx eax, word [esi + 3]
xorps xmm0, xmm0
mov esi, eax
shl eax, 8
shr esi, 8
movzx eax, ax
or esi, eax
movups xmmword [ebp - 0x10580], xmm0
movups xmmword [ebp - 0x10570], xmm0
mov ecx, dword [ebp - 0x1065c]
mov dword [ebp - 4], 0x11
mov al, byte [ecx + 1]
cmp al, byte [edx + 0x18]
jne 0x51d298
movups xmm0, xmmword [edx + 0x1b]
movups xmmword [ebp - 0x10580], xmm0
movups xmm0, xmmword [edx + 0x2b]
jmp 0x51d2ac
cmp al, byte [edx + 0x19]
jne 0x51d2b3
movups xmm0, xmmword [edx + 0x3b]
movups xmmword [ebp - 0x10580], xmm0
movups xmm0, xmmword [edx + 0x4b]
movups xmmword [ebp - 0x10570], xmm0
mov ecx, 0x6a705c
call fcn.005e0810
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10580]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51d94a
push 0xffffffffffffffff
lea eax, [ebp - 0x10580]
push eax
mov eax, dword [ebp - 0x10644]
push dword [ebp - 0x1065c]
mov ecx, dword [eax + 0x3ea]
call fcn.00521ca0
test eax, eax
js 0x51d94a
xor eax, eax
lea edx, [esi + edi]
mov dword [ebp - 0x10664], eax
mov al, byte [edi]
mov byte [ebp - 0x10651], al
mov al, byte [edi + 1]
mov byte [ebp - 0x10645], al
mov al, byte [edi + 2]
add edi, 3
mov dword [ebp - 0x10660], edx
mov byte [ebp - 0x10669], al
cmp edi, edx
jae 0x51c0e7
nop dword [eax + eax]
lea eax, [edi + 0xe]
mov word [ebp - 0x106b4], 0
xorps xmm0, xmm0
movq qword [ebp - 0x106bc], xmm0
cmp eax, edx
ja 0x51d8d2
mov eax, dword [edi]
bswap eax
mov dword [ebp - 0x10668], eax
mov eax, dword [edi + 4]
bswap eax
mov dword [ebp - 0x106bc], eax
mov ax, word [edi + 8]
mov ch, al
mov cl, ah
mov eax, dword [edi + 0xa]
bswap eax
mov word [ebp - 0x106b8], cx
add edi, 0xe
mov dword [ebp - 0x106b6], eax
movups xmmword [ebp - 0x10728], xmm0
movups xmmword [ebp - 0x105a0], xmm0
movups xmmword [ebp - 0x10708], xmm0
movups xmmword [ebp - 0x10590], xmm0
mov dword [ebp - 0x10678], 0
mov al, byte [ebp - 0x10645]
mov byte [ebp - 4], 0x14
cmp byte [ebp - 0x10651], al
jne 0x51d48a
movzx esi, byte [edi + 0x28]
lea eax, [esi + 0x29]
add eax, edi
mov dword [ebp - 0x10650], eax
cmp eax, edx
ja 0x51d8d2
movups xmm0, xmmword [edi + 8]
mov eax, dword [edi]
bswap eax
mov dword [ebp - 0x1065c], eax
mov eax, dword [edi + 4]
movups xmmword [ebp - 0x10718], xmm0
bswap eax
movups xmmword [ebp - 0x10640], xmm0
mov dword [ebp - 0x10670], eax
movups xmm0, xmmword [edi + 0x18]
movups xmmword [ebp - 0x10550], xmm0
movups xmmword [ebp - 0x10630], xmm0
call fcn.005a45d0
mov dword [ebp - 0x106e0], eax
mov byte [ebp - 4], 0x15
test eax, eax
je 0x51d440
push 0
push esi
lea ecx, [edi + 0x29]
push ecx
mov ecx, eax
call fcn.005a57f0
jmp 0x51d442
xor eax, eax
mov byte [ebp - 4], 0x14
test eax, eax
je 0x51d45a
cmp dword [eax + 0xc], 0
jne 0x51d45a
push ecx
mov ecx, eax
call fcn.005a47b0
xor eax, eax
mov ecx, dword [ebp - 0x10678]
cmp ecx, eax
je 0x51d528
mov dword [ebp - 0x10678], eax
test ecx, ecx
je 0x51d53e
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x51d53e
push ecx
jmp 0x51d539
movzx esi, byte [edi + 0x48]
lea eax, [esi + 0x49]
add eax, edi
mov dword [ebp - 0x10650], eax
cmp eax, edx
ja 0x51d8d2
movups xmm0, xmmword [edi + 8]
mov eax, dword [edi]
bswap eax
movups xmmword [ebp - 0x10718], xmm0
mov dword [ebp - 0x1065c], eax
mov eax, dword [edi + 4]
movups xmmword [ebp - 0x10640], xmm0
bswap eax
movups xmm0, xmmword [edi + 0x18]
mov dword [ebp - 0x10670], eax
movups xmmword [ebp - 0x10550], xmm0
movups xmmword [ebp - 0x10630], xmm0
movups xmm0, xmmword [edi + 8]
movups xmmword [ebp - 0x10728], xmm0
movups xmmword [ebp - 0x105a0], xmm0
movups xmm0, xmmword [edi + 0x18]
movups xmmword [ebp - 0x10708], xmm0
movups xmmword [ebp - 0x10590], xmm0
call fcn.005a45d0
mov dword [ebp - 0x106f4], eax
mov byte [ebp - 4], 0x16
test eax, eax
je 0x51d440
push 0
push esi
lea ecx, [edi + 0x49]
push ecx
mov ecx, eax
call fcn.005a57f0
jmp 0x51d442
test eax, eax
je 0x51d53e
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
jne 0x51d53e
push ecx
mov ecx, eax
call fcn.005a47b0
mov edi, dword [ebp - 0x10650]
movzx esi, byte [edi]
lea eax, [edi + 1]
add eax, esi
cmp eax, dword [ebp - 0x10660]
ja 0x51d8b8
call fcn.005a45d0
mov dword [ebp - 0x106f0], eax
mov byte [ebp - 4], 0x17
test eax, eax
je 0x51d5ad
push 0
push esi
lea ecx, [edi + 1]
push ecx
mov ecx, eax
call fcn.005a57f0
mov esi, eax
mov dword [ebp - 0x1067c], esi
mov edx, esi
mov dword [ebp - 0x10680], esi
mov ecx, esi
mov dword [ebp - 0x10650], esi
test esi, esi
je 0x51d5c7
cmp dword [esi + 0xc], 0
mov dword [ebp - 0x10680], esi
mov dword [ebp - 0x10650], esi
jne 0x51d5c7
push ecx
call fcn.005a47b0
xor esi, esi
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x10680], ecx
xor eax, eax
mov dword [ebp - 0x1067c], esi
mov dword [ebp - 0x10650], eax
mov byte [ebp - 4], 0x18
movzx eax, byte [edi]
inc edi
add edi, eax
mov dword [ebp - 0x10674], edi
test edx, edx
je 0x51d5e0
mov eax, dword [ecx + 4]
jmp 0x51d5e2
xor eax, eax
and eax, 0xfffffff8
lea ecx, [ebp - 0x1067c]
push eax
lea eax, [ebp - 0x106d4]
push eax
call fcn.005ac5a0
mov ecx, dword [eax]
cmp dword [ebp - 0x10680], ecx
je 0x51d62a
mov esi, ecx
mov dword [eax], 0
mov ecx, dword [ebp - 0x10650]
mov dword [ebp - 0x1067c], esi
test ecx, ecx
je 0x51d62a
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x51d62a
push ecx
call fcn.005a47b0
mov ecx, dword [ebp - 0x106d4]
test ecx, ecx
je 0x51d644
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x51d644
push ecx
call fcn.005a47b0
xor ecx, ecx
mov edi, 0xfffd
nop dword [eax + eax]
test esi, esi
je 0x51d659
mov eax, dword [esi + 4]
jmp 0x51d65b
xor eax, eax
shr eax, 2
cmp ecx, eax
jge 0x51d691
test esi, esi
je 0x51d66b
mov eax, dword [esi + 0xc]
jmp 0x51d670
mov eax, 0x651f68
mov eax, dword [eax + ecx*4]
bswap eax
test esi, esi
je 0x51d686
and word [esi + 0x10], di
mov edx, dword [esi + 0xc]
mov dword [edx + ecx*4], eax
inc ecx
jmp 0x51d650
mov edx, 0x651f68
mov dword [edx + ecx*4], eax
inc ecx
jmp 0x51d650
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
mov edi, dword [ebp - 0x10674]
cmp eax, 0x80
jne 0x51d6b0
xor eax, eax
jmp 0x51d6b9
test eax, eax
jne 0x51d6cb
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov ecx, dword [ebp - 0x10644]
mov eax, dword [ebp - 0x1065c]
mov edx, dword [ecx + 0x3ea]
cmp eax, dword [edx + 8]
jne 0x51d714
movups xmm0, xmmword [0x6ad9e0]
movups xmm1, xmmword [0x6ad9f0]
movups xmm2, xmm0
movups xmm3, xmm1
movups xmmword [ebp - 0x105a0], xmm0
movups xmmword [ebp - 0x10590], xmm1
movups xmmword [ebp - 0x10640], xmm2
movups xmmword [ebp - 0x10630], xmm3
jmp 0x51d730
movups xmm0, xmmword [ebp - 0x10728]
movups xmm1, xmmword [ebp - 0x10708]
movups xmm2, xmmword [ebp - 0x10718]
movups xmm3, xmmword [ebp - 0x10550]
cmp eax, 0xfffffffe
jne 0x51d762
mov al, byte [ebp - 0x10645]
movups xmmword [edx + 0x1b], xmm2
movups xmmword [edx + 0x2b], xmm3
cmp byte [ebp - 0x10651], al
je 0x51d807
mov eax, dword [ecx + 0x3ea]
movups xmmword [eax + 0x3b], xmm0
movups xmmword [eax + 0x4b], xmm1
jmp 0x51d807
sub esp, 0x20
mov eax, esp
sub esp, 0x20
movups xmmword [eax], xmm0
movups xmmword [eax + 0x10], xmm1
mov eax, esp
push ecx
movups xmmword [eax], xmm2
movups xmmword [eax + 0x10], xmm3
mov eax, esp
test esi, esi
je 0x51d788
lock inc dword [esi]
mov dword [eax], esi
jmp 0x51d78e
mov dword [eax], 0
mov eax, dword [ebp - 0x10678]
push ecx
mov ecx, esp
test eax, eax
je 0x51d7a0
lock inc dword [eax]
jmp 0x51d7a2
xor eax, eax
mov dword [ecx], eax
mov ecx, edx
push dword [ebp - 0x10670]
push dword [ebp - 0x1065c]
call fcn.00520760
mov eax, dword [ebp - 0x1065c]
mov ecx, dword [0x6ac5f8]
mov dword [ebp - 0x10650], eax
lea eax, [ebp - 0x10668]
push 1
push eax
lea eax, [ebp - 0x10650]
lea ecx, [ecx + 0x62]
push eax
call fcn.00429d00
mov ecx, dword [0x6ac5f8]
lea eax, [ebp - 0x106bc]
add ecx, 0x87
push ecx
push eax
lea eax, [ebp - 0x10650]
push eax
call fcn.0052e070
mov ecx, dword [ebp - 0x10644]
mov eax, dword [ecx + 0x3ea]
mov ecx, 0x6a705c
mov eax, dword [eax + 8]
mov dword [ebp - 0x10668], eax
call fcn.005e0810
inc dword [ebp - 0x10664]
lea ecx, [ebp - 0x10640]
push 0x20
mov edx, 0x6ad9e0
call fcn.004250e0
mov ecx, dword [ebp - 0x1065c]
add esp, 4
test al, al
je 0x51d852
mov eax, str.__no_key
cmp ecx, dword [ebp - 0x10668]
jne 0x51d857
mov eax, 0x651eaf
push eax
lea eax, [ebp - 0x10678]
push eax
push dword [ebp - 0x10670]
push ecx
push str.VPN_user_login_logout_notificaion:_Id_d__Ip_I__Name_S_s_n
push 0x6a6e70
call fcn.0042abc0
add esp, 0x18
test esi, esi
je 0x51d88e
or eax, 0xffffffff
lock xadd dword [esi], eax
dec eax
jne 0x51d88e
push ecx
mov ecx, esi
call fcn.005a47b0
mov ecx, dword [ebp - 0x10678]
test ecx, ecx
je 0x51d8a8
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x51d8a8
push ecx
call fcn.005a47b0
mov edx, dword [ebp - 0x10660]
cmp edi, edx
jb 0x51d340
jmp 0x51d8d2
mov ecx, dword [ebp - 0x10678]
test ecx, ecx
je 0x51d8d2
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
jne 0x51d8d2
push ecx
call fcn.005a47b0
mov eax, dword [ebp - 0x10664]
test eax, eax
jle 0x51c0e7
mov ecx, dword [ebp - 0x10644]
mov dl, byte [ebp - 0x10651]
mov eax, dword [ecx + 0x3ea]
mov byte [eax + 0x18], dl
mov eax, dword [ecx + 0x3ea]
mov dl, byte [ebp - 0x10645]
mov byte [eax + 0x19], dl
mov eax, dword [ecx + 0x3ea]
mov cl, byte [ebp - 0x10669]
push ecx
mov byte [eax + 0x1a], cl
mov ecx, esp
mov eax, dword [0x6aefbc]
test eax, eax
je 0x51d936
lock inc dword [eax]
mov dword [ecx], eax
mov ecx, 5
call fcn.004f95f0
add esp, 4
jmp 0x51c0e7
xor eax, eax
mov dword [ecx], eax
lea ecx, [eax + 5]
call fcn.004f95f0
add esp, 4
jmp 0x51c0e7
push str.eVpnLoggedInUsers:_Gost_decrypt_error_n
jmp 0x51ed8e
mov esi, dword [edx + 0x1d1]
test esi, esi
je 0x51ec26
test byte [esi + 0x2fb], 3
jne 0x51ec26
xor edx, edx
mov eax, ecx
div dword [esi + 0x2f3]
mov eax, dword [esi + 0x2f7]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x51ec26
nop word [eax + eax]
cmp dword [eax + 4], ecx
je 0x51d9aa
mov eax, dword [eax]
test eax, eax
jne 0x51d990
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x51ec26
cmp dword [ecx + 0x3be], 3
jne 0x51ec26
mov esi, dword [ebp - 0x1065c]
push ecx
push 1
movzx eax, word [esi + 3]
mov edx, eax
shl eax, 8
shr edx, 8
movzx eax, ax
or edx, eax
add edx, edi
push edx
push esi
call fcn.00523840
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
cmp dword [ecx + 0x406], 3
jne 0x51c0f4
mov eax, dword [esi + 9]
xorps xmm0, xmm0
mov esi, dword [esi + 5]
bswap eax
mov dword [ebp - 0x10664], eax
bswap esi
movups xmmword [ebp - 0x10620], xmm0
movups xmmword [ebp - 0x10610], xmm0
push 0xffffffffffffffff
mov dword [ebp - 4], 0x19
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51da48
xor eax, eax
jmp 0x51da51
test eax, eax
jne 0x51da63
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [ebp - 0x10664]
mov eax, dword [eax + 0x3ea]
mov dword [ebp - 0x10660], eax
cmp ecx, dword [eax + 8]
jne 0x51db3b
mov ecx, dword [ebp - 0x1065c]
mov cl, byte [ecx + 1]
cmp cl, byte [eax + 0x18]
jne 0x51dad2
test byte [eax + 0xe2], 3
jne 0x51dbc5
mov ecx, dword [ebp - 0x10660]
xor edx, edx
mov eax, esi
div dword [ecx + 0xda]
mov eax, dword [ecx + 0xde]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51dbc5
cmp dword [eax + 4], esi
je 0x51db20
mov eax, dword [eax]
test eax, eax
jne 0x51dac2
jmp 0x51dbc5
cmp cl, byte [eax + 0x19]
jne 0x51dbc5
test byte [eax + 0x107], 3
jne 0x51dbc5
mov ecx, dword [ebp - 0x10660]
xor edx, edx
mov eax, esi
div dword [ecx + 0xff]
mov eax, dword [ecx + 0x103]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51dbc5
nop dword [eax + eax]
cmp dword [eax + 4], esi
je 0x51db20
mov eax, dword [eax]
test eax, eax
jne 0x51db10
jmp 0x51dbc5
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x10620], xmm0
movups xmm0, xmmword [eax + 0x18]
movups xmmword [ebp - 0x10610], xmm0
jmp 0x51dbc5
mov eax, dword [eax + 0x1d1]
mov dword [ebp - 0x10668], eax
test eax, eax
je 0x51dbc5
test byte [eax + 0x2fb], 3
jne 0x51dbc5
mov eax, ecx
xor edx, edx
mov ecx, dword [ebp - 0x10668]
div dword [ecx + 0x2f3]
mov eax, dword [ecx + 0x2f7]
mov ecx, dword [ebp - 0x10664]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51dbc5
nop dword [eax]
cmp dword [eax + 4], ecx
je 0x51db8d
mov eax, dword [eax]
test eax, eax
jne 0x51db80
jmp 0x51dbc5
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x51dbc5
cmp dword [ecx + 0x3be], 3
jne 0x51dbc5
mov eax, dword [ebp - 0x1065c]
push ecx
push 0
movzx eax, word [eax + 3]
mov edx, eax
shl eax, 8
shr edx, 8
movzx eax, ax
or edx, eax
add edx, edi
push edx
push dword [ebp - 0x1065c]
call fcn.00523840
mov ecx, 0x6a705c
call fcn.005e0810
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10620]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51c0e7
push 0xffffffffffffffff
lea eax, [ebp - 0x10620]
push eax
mov eax, dword [ebp - 0x10644]
push dword [ebp - 0x1065c]
mov ecx, dword [eax + 0x3ea]
call fcn.00521ca0
mov edx, eax
test edx, edx
js 0x51c0e7
mov eax, dword [ebp - 0x10664]
sub esp, 8
mov ecx, edi
push eax
push esi
call fcn.0047bb70
add esp, 0x10
jmp 0x51c0e7
mov ecx, dword [ebp - 0x10644]
mov edi, dword [ebp - 0x1064c]
cmp dword [ecx + 0x406], 3
jne 0x51c0fa
mov esi, dword [esi + 9]
push 0xffffffffffffffff
push dword [0x6a705c]
bswap esi
mov dword [ebp - 0x10684], 0
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51dc71
xor eax, eax
jmp 0x51dc7a
test eax, eax
jne 0x51dc8c
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov edi, dword [ebp - 0x10644]
mov eax, dword [edi + 0x3ea]
cmp esi, dword [eax + 8]
jne 0x51ec26
push 0
sub esp, 8
mov ecx, edi
push dword [ebp - 0x1065c]
call fcn.0051ef80
mov dword [ebp - 0x10664], eax
cmp eax, 4
jle 0x51ec26
mov edx, dword [ebp - 0x1065c]
mov ecx, dword [edx + 9]
mov dword [edx + 5], ecx
mov ecx, dword [edi + 0x3ea]
mov eax, dword [ecx + 0x1d1]
test eax, eax
je 0x51ec26
mov edi, dword [eax + 0x32d]
add eax, 0x32d
xor ecx, ecx
cmp edi, eax
cmove edi, ecx
test edi, edi
je 0x51ec26
nop dword [eax]
mov eax, dword [edi + 8]
xorps xmm0, xmm0
movups xmmword [ebp - 0x10600], xmm0
movups xmmword [ebp - 0x105f0], xmm0
mov esi, dword [eax + 0x26d]
mov eax, esi
bswap eax
mov dword [ebp - 0x106a8], esi
mov dword [edx + 9], eax
mov eax, dword [ebp - 0x10644]
mov dword [ebp - 4], 0x1a
mov ecx, dword [eax + 0x3ea]
mov al, byte [edx + 1]
cmp al, byte [ecx + 0x18]
jne 0x51dd71
test byte [ecx + 0xe2], 3
jne 0x51ddbb
xor edx, edx
mov eax, esi
div dword [ecx + 0xda]
mov eax, dword [ecx + 0xde]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51ddbb
cmp dword [eax + 4], esi
je 0x51dda5
mov eax, dword [eax]
test eax, eax
jne 0x51dd64
jmp 0x51ddbb
cmp al, byte [ecx + 0x19]
jne 0x51ddbb
test byte [ecx + 0x107], 3
jne 0x51ddbb
xor edx, edx
mov eax, esi
div dword [ecx + 0xff]
mov eax, dword [ecx + 0x103]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51ddbb
cmp dword [eax + 4], esi
je 0x51dda5
mov eax, dword [eax]
test eax, eax
jne 0x51dd98
jmp 0x51ddbb
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x10600], xmm0
movups xmm0, xmmword [eax + 0x18]
movups xmmword [ebp - 0x105f0], xmm0
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10600]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51df6f
mov eax, dword [ebp - 0x10644]
mov ecx, dword [eax + 0x3ea]
test byte [ecx + 0x1c4], 3
jne 0x51de15
xor edx, edx
mov eax, esi
div dword [ecx + 0x1bc]
mov eax, dword [ecx + 0x1c0]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51de15
cmp dword [eax + 4], esi
je 0x51dfb5
mov eax, dword [eax]
test eax, eax
jne 0x51de06
call fcn.005faa00
push 4
lea ecx, [ebp - 0x10684]
push ecx
mov ecx, eax
call fcn.005fa710
mov eax, dword [ebp - 0x10684]
add eax, 1
mov dword [ebp - 0x10684], eax
jne 0x51de46
mov eax, 1
mov dword [ebp - 0x10684], eax
mov dword [ebp - 0x10533], eax
mov eax, dword [ebp - 0x10644]
push 1
mov ecx, dword [eax + 0x3ea]
lea eax, [ebp - 0x10684]
push eax
lea eax, [ebp - 0x106a8]
add ecx, 0x1ac
push eax
call fcn.00429d00
mov eax, dword [ebp - 0x10664]
add eax, 0x19
push eax
push dword [ebp - 0x1065c]
lea eax, [ebp - 0x10540]
push eax
call fcn.00609db0
lea esi, [ebp - 0x10527]
mov dword [ebp - 0x1052f], 0
add esi, dword [ebp - 0x10664]
lea eax, [ebp - 0x10540]
mov cx, si
add esp, 0xc
sub cx, ax
sub cx, 0x19
mov ah, cl
mov al, ch
mov word [ebp - 0x1053d], ax
mov eax, dword [0x6ac610]
nop
bswap eax
mov dword [ebp - 0x1052b], eax
mov eax, dword [ebp - 0x10533]
mov dword [ebp - 0x106c4], eax
mov dword [ebp - 0x106c0], eax
call fcn.005fabe0
lea ecx, [ebp - 0x10540]
push ecx
sub esi, ecx
lea ecx, [ebp - 0x106c4]
push ecx
lea ecx, [ebp - 0x106dc]
push ecx
push esi
lea ecx, [ebp - 0x10540]
push ecx
lea ecx, [ebp - 0x10600]
push ecx
mov ecx, eax
call fcn.005fa230
mov eax, dword [ebp - 0x106dc]
xor eax, dword [ebp - 0x106d8]
mov dword [ebp - 0x1052f], eax
call fcn.005fabe0
push 0
push 0
lea ecx, [ebp - 0x106c4]
push ecx
lea ecx, [esi - 0x15]
push ecx
lea ecx, [ebp - 0x1052b]
push ecx
lea ecx, [ebp - 0x10600]
push ecx
mov ecx, eax
call fcn.005fa040
push ecx
push 0
lea ecx, [ebp - 0x10527]
add ecx, dword [ebp - 0x10664]
lea eax, [ebp - 0x10540]
push ecx
mov ecx, dword [edi + 8]
push eax
call fcn.00523840
mov eax, dword [ebp - 0x10644]
xor edx, edx
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [edi]
mov edi, ecx
mov eax, dword [eax + 0x3ea]
mov eax, dword [eax + 0x1d1]
add eax, 0x32d
cmp ecx, eax
cmove edi, edx
mov edx, dword [ebp - 0x1065c]
test edi, edi
jne 0x51dd00
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov eax, dword [eax + 8]
jmp 0x51de30
mov eax, dword [esi + 9]
bswap eax
cmp eax, 0xfffffffe
jne case.0x51c1e2.2
movzx eax, word [esi + 3]
push ecx
mov ecx, eax
shl eax, 8
shr ecx, 8
movzx eax, ax
or ecx, eax
push 1
add ecx, edi
push ecx
mov ecx, dword [ebp - 0x10644]
push esi
call fcn.0051f690
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
cmp dword [ecx + 0x406], 3
jne 0x51c0f4
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e01f
xor eax, eax
jmp 0x51e028
test eax, eax
jne 0x51e03a
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [esi + 9]
bswap ecx
mov eax, dword [eax + 0x3ea]
cmp ecx, dword [eax + 8]
jne 0x51e2c6
xorps xmm0, xmm0
movups xmmword [ebp - 0x10580], xmm0
movups xmmword [ebp - 0x10570], xmm0
mov dword [ebp - 4], 0x1b
mov cl, byte [esi + 1]
cmp cl, byte [eax + 0x18]
jne 0x51e085
movups xmm0, xmmword [eax + 0x1b]
movups xmmword [ebp - 0x10580], xmm0
movups xmm0, xmmword [eax + 0x2b]
jmp 0x51e099
cmp cl, byte [eax + 0x19]
jne 0x51e0a0
movups xmm0, xmmword [eax + 0x3b]
movups xmmword [ebp - 0x10580], xmm0
movups xmm0, xmmword [eax + 0x4b]
movups xmmword [ebp - 0x10570], xmm0
mov ecx, 0x6a705c
call fcn.005e0810
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10580]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51e2af
push 0xffffffffffffffff
lea eax, [ebp - 0x10580]
push eax
mov eax, dword [ebp - 0x10644]
push esi
mov ecx, dword [eax + 0x3ea]
call fcn.00521ca0
mov esi, eax
test esi, esi
js 0x51e2af
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e105
xor eax, eax
jmp 0x51e10e
test eax, eax
jne 0x51e120
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
lea eax, [esi + edi]
mov dword [ebp - 0x10660], eax
mov eax, dword [edi]
bswap eax
cmp eax, 0xfffffffe
jne 0x51e149
mov eax, dword [ebp - 0x10644]
mov ecx, dword [eax + 0x3ea]
add ecx, 0xef
call fcn.0052afa0
add edi, 0x24
xor esi, esi
cmp edi, dword [ebp - 0x10660]
ja 0x51e1bc
mov eax, dword [edi - 0x24]
movups xmm0, xmmword [edi - 0x20]
bswap eax
movups xmm1, xmmword [edi - 0x10]
mov dword [ebp - 0x10668], eax
movups xmmword [ebp - 0x105a0], xmm0
movups xmmword [ebp - 0x10590], xmm1
mov ecx, dword [ebp - 0x10644]
mov byte [ebp - 4], 0x1c
mov ecx, dword [ecx + 0x3ea]
cmp eax, 0xfffffffe
jne 0x51e196
movups xmmword [ecx + 0x3b], xmm0
movups xmmword [ecx + 0x4b], xmm1
jmp 0x51e1b0
add ecx, 0xef
lea eax, [ebp - 0x105a0]
push ecx
push eax
lea eax, [ebp - 0x10668]
push eax
call fcn.0052f520
add edi, 0x24
inc esi
cmp edi, dword [ebp - 0x10660]
jbe 0x51e156
mov eax, dword [ebp - 0x10644]
mov dword [ebp - 0x10548], 5
mov byte [ebp - 0x10544], 1
mov ecx, dword [eax + 0x3ea]
mov eax, dword [ebp - 0x1065c]
mov al, byte [eax + 2]
mov byte [ecx + 0x19], al
mov edi, dword [0x6ac16c]
push 0xffffffffffffffff
push dword [edi]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e205
mov dword [edi + 8], 0
jmp 0x51e209
test eax, eax
jne 0x51e212
inc dword [edi + 0xc]
inc dword [edi + 8]
inc dword [edi + 4]
mov eax, dword [0x6a6e68]
mov edi, dword [0x6af2b8]
mov dword [ebp - 0x10554], eax
mov eax, dword [0x6a6e6c]
mov dword [ebp - 0x10550], eax
nop
mov dword [ebp - 0x1054c], edi
mov eax, 5
mov ecx, 0x6af2b8
xchg dword [ecx], eax
mov dword [0x6a6e68], 0xaaff
mov dword [0x6a6e6c], 0xffffffff
mov byte [ebp - 4], 0x1e
mov eax, dword [0x6af2bc]
nop
test al, 0x20
jne 0x51e27f
cmp byte [0x6ac39e], 0
jne 0x51e27f
push esi
push str.CVpnClient::Process__:_received_new_keys_for__d_users_n
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
push esi
push str.CVpnClient::Process__:_received_new_keys_for__d_users_n
call fcn.0050dc30
mov eax, dword [ebp - 0x10554]
add esp, 8
mov dword [0x6a6e68], eax
mov eax, dword [ebp - 0x10550]
mov dword [0x6a6e6c], eax
mov eax, 0x6af2b8
xchg dword [eax], edi
jmp 0x51e605
push str.Gost_decrypt_error_or_no_key_for_decrypt__event__eVpnUpdateKeys_n
push 0x6a6e70
call fcn.0042abc0
add esp, 8
jmp 0x51c0e7
mov esi, dword [eax + 0x1d1]
test esi, esi
je 0x51ec26
test byte [esi + 0x2fb], 3
jne 0x51ec26
xor edx, edx
mov eax, ecx
div dword [esi + 0x2f3]
mov eax, dword [esi + 0x2f7]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x51ec26
nop dword [eax]
cmp dword [eax + 4], ecx
je 0x51d9aa
mov eax, dword [eax]
test eax, eax
jne 0x51e300
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
cmp dword [ecx + 0x406], 3
jne 0x51c0f4
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e34a
xor eax, eax
jmp 0x51e353
test eax, eax
jne 0x51e365
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [esi + 9]
bswap ecx
mov eax, dword [eax + 0x3ea]
cmp ecx, dword [eax + 8]
jne 0x51e648
xorps xmm0, xmm0
movups xmmword [ebp - 0x10580], xmm0
movups xmmword [ebp - 0x10570], xmm0
mov dword [ebp - 4], 0x20
mov cl, byte [esi + 1]
cmp cl, byte [eax + 0x18]
jne 0x51e3b0
movups xmm0, xmmword [eax + 0x1b]
movups xmmword [ebp - 0x10580], xmm0
movups xmm0, xmmword [eax + 0x2b]
jmp 0x51e3c4
cmp cl, byte [eax + 0x19]
jne 0x51e3cb
movups xmm0, xmmword [eax + 0x3b]
movups xmmword [ebp - 0x10580], xmm0
movups xmm0, xmmword [eax + 0x4b]
movups xmmword [ebp - 0x10570], xmm0
mov ecx, 0x6a705c
call fcn.005e0810
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x10580]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51e62c
push 0xffffffffffffffff
lea eax, [ebp - 0x10580]
push eax
mov eax, dword [ebp - 0x10644]
push esi
mov ecx, dword [eax + 0x3ea]
call fcn.00521ca0
mov esi, eax
test esi, esi
js 0x51e626
push 0xffffffffffffffff
push dword [0x6a705c]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e430
xor eax, eax
jmp 0x51e439
test eax, eax
jne 0x51e44b
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
cmp esi, 2
jne 0x51ebc0
mov cl, byte [edi]
mov dl, byte [edi + 1]
mov edi, dword [ebp - 0x10644]
mov byte [ebp - 0x10669], cl
mov byte [ebp - 0x10645], dl
mov eax, dword [edi + 0x3ea]
mov ch, byte [eax + 0x19]
cmp cl, ch
jne 0x51e50c
cmp cl, dl
je 0x51e48e
cmp dl, byte [eax + 0x18]
jne 0x51e50c
mov byte [eax + 0x1a], cl
jmp 0x51e50c
cmp byte [eax + 0x18], ch
je 0x51e50c
mov byte [eax + 0x18], cl
mov eax, dword [edi + 0x3ea]
mov byte [eax + 0x1a], cl
mov eax, dword [edi + 0x3ea]
movups xmm0, xmmword [eax + 0x3b]
movups xmmword [eax + 0x1b], xmm0
movups xmm0, xmmword [eax + 0x4b]
movups xmmword [eax + 0x2b], xmm0
mov esi, dword [edi + 0x3ea]
mov eax, dword [esi + 0xca]
lea ecx, [esi + 0xca]
mov edx, dword [eax + 4]
lea eax, [esi + 0xef]
push eax
call edx
mov eax, dword [edi + 0x3ea]
movups xmm0, xmmword [0x6ad9e0]
movups xmmword [eax + 0x3b], xmm0
movups xmm0, xmmword [0x6ad9f0]
movups xmmword [eax + 0x4b], xmm0
mov ecx, dword [edi + 0x3ea]
add ecx, 0xef
call fcn.0052afa0
mov cl, byte [ebp - 0x10669]
mov dl, byte [ebp - 0x10645]
movzx eax, dl
push eax
movzx eax, cl
push eax
lea eax, [ebp - 0x120]
push str.CVpnClient::Process__:_eVpnChangeKeys:_setting_CurrentKeyNo___d_and_SupportedKeyNo___d_n
push eax
call fcn.0041b2a0
add esp, 0x10
mov dword [ebp - 0x10548], 5
mov byte [ebp - 0x10544], 1
mov esi, dword [0x6ac16c]
push 0xffffffffffffffff
push dword [esi]
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e559
mov dword [esi + 8], 0
jmp 0x51e55d
test eax, eax
jne 0x51e566
inc dword [esi + 0xc]
inc dword [esi + 8]
inc dword [esi + 4]
mov eax, dword [0x6a6e68]
mov esi, dword [0x6af2b8]
mov dword [ebp - 0x10554], eax
mov eax, dword [0x6a6e6c]
mov dword [ebp - 0x10550], eax
nop
mov dword [ebp - 0x1054c], esi
mov eax, 5
mov edi, 0x6af2b8
xchg dword [edi], eax
mov dword [0x6a6e68], 0xaaff
mov dword [0x6a6e6c], 0xffffffff
mov byte [ebp - 4], 0x22
mov eax, dword [0x6af2bc]
nop
test al, 0x20
jne 0x51e5d9
cmp byte [0x6ac39e], 0
jne 0x51e5d9
lea eax, [ebp - 0x120]
push eax
push 0x651eac
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
lea eax, [ebp - 0x120]
push eax
push 0x651eac
call fcn.0050dc30
mov eax, dword [ebp - 0x10554]
add esp, 8
mov dword [0x6a6e68], eax
mov eax, dword [ebp - 0x10550]
mov dword [0x6a6e6c], eax
xchg dword [edi], esi
mov ecx, dword [0x6ac16c]
call fcn.005e0810
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
mov esi, dword [ebp - 0x1065c]
movzx eax, byte [esi + 1]
push eax
push str.Gost_decrypt_error_or_no_key_for_decrypt__event__eVpnChangeKeys__KeyNo___d_n
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
jmp 0x51c0e7
mov esi, dword [eax + 0x1d1]
test esi, esi
je 0x51ec26
test byte [esi + 0x2fb], 3
jne 0x51ec26
xor edx, edx
mov eax, ecx
div dword [esi + 0x2f3]
mov eax, dword [esi + 0x2f7]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x51ec26
nop
cmp dword [eax + 4], ecx
je 0x51d9aa
mov eax, dword [eax]
test eax, eax
jne 0x51e680
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
push 1
push 0
push 0
lea ecx, [ecx + 0x357]
call fcn.0041b220
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
cmp dword [ecx + 0x406], 3
jne 0x51c0f4
mov esi, dword [esi + 9]
push 0xffffffffffffffff
push dword [0x6a705c]
bswap esi
call dword [ebp - 0x10658]
cmp eax, 0x80
jne 0x51e6eb
xor eax, eax
jmp 0x51e6f4
test eax, eax
jne 0x51e706
mov eax, dword [0x6a7064]
inc dword [0x6a7068]
inc eax
inc dword [0x6a7060]
mov dword [0x6a7064], eax
mov eax, dword [ebp - 0x10644]
mov edx, dword [eax + 0x3ea]
mov dword [ebp - 0x10660], edx
cmp esi, dword [edx + 8]
jne 0x51ebde
mov edi, dword [ebp - 0x1065c]
movzx ecx, word [edi + 3]
mov ax, cx
shl ecx, 8
shr ax, 8
or ax, cx
cmp ax, 0xe
jne 0x51ec26
xorps xmm0, xmm0
movups xmmword [ebp - 0x105c0], xmm0
movups xmmword [ebp - 0x105b0], xmm0
mov dword [ebp - 4], 0x24
mov ecx, dword [edi + 5]
mov al, byte [edi + 1]
bswap ecx
cmp ecx, 0xfffffffe
jne 0x51e79d
cmp al, byte [edx + 0x18]
jne 0x51e780
movups xmm0, xmmword [edx + 0x1b]
movups xmmword [ebp - 0x105c0], xmm0
movups xmm0, xmmword [edx + 0x2b]
jmp 0x51e82c
cmp al, byte [edx + 0x19]
jne 0x51e833
movups xmm0, xmmword [edx + 0x3b]
movups xmmword [ebp - 0x105c0], xmm0
movups xmm0, xmmword [edx + 0x4b]
jmp 0x51e82c
cmp al, byte [edx + 0x18]
jne 0x51e7dd
test byte [edx + 0xe2], 3
jne 0x51e833
mov esi, dword [ebp - 0x10660]
xor edx, edx
mov eax, ecx
div dword [esi + 0xda]
mov eax, dword [esi + 0xde]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51e833
nop
cmp dword [eax + 4], ecx
je 0x51e81d
mov eax, dword [eax]
test eax, eax
jne 0x51e7d0
jmp 0x51e833
cmp al, byte [edx + 0x19]
jne 0x51e833
test byte [edx + 0x107], 3
jne 0x51e833
mov esi, dword [ebp - 0x10660]
xor edx, edx
mov eax, ecx
div dword [esi + 0xff]
mov eax, dword [esi + 0x103]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51e833
nop word [eax + eax]
cmp dword [eax + 4], ecx
je 0x51e81d
mov eax, dword [eax]
test eax, eax
jne 0x51e810
jmp 0x51e833
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x105c0], xmm0
movups xmm0, xmmword [eax + 0x18]
movups xmmword [ebp - 0x105b0], xmm0
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x105c0]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51ebc0
push 0xe
lea eax, [ebp - 0x105c0]
push eax
mov eax, dword [ebp - 0x10644]
push edi
mov ecx, dword [eax + 0x3ea]
call fcn.00521ca0
test eax, eax
js 0x51ebc0
mov esi, dword [0x6ac5f8]
mov ecx, dword [edi + 0x19]
bswap ecx
test byte [esi + 0x9f], 3
jne 0x51ebc0
xor edx, edx
mov eax, ecx
div dword [esi + 0x97]
mov eax, dword [esi + 0x9b]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51ebc0
cmp dword [eax + 4], ecx
je 0x51e8c9
mov eax, dword [eax]
test eax, eax
jne 0x51e8a8
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
lea edx, [eax + 8]
test edx, edx
je 0x51ebc0
mov eax, dword [edi + 0x21]
bswap eax
mov dword [edx], eax
mov ax, word [edi + 0x25]
mov ch, al
mov cl, ah
mov word [edx + 4], cx
mov ecx, dword [ebp - 0x1065c]
mov eax, dword [ecx + 0x1d]
bswap eax
mov dword [edx + 6], eax
mov edx, dword [ebp - 0x10644]
mov eax, dword [ecx + 9]
mov dword [ecx + 5], eax
mov eax, dword [edx + 0x3ea]
mov eax, dword [eax + 0x1d1]
test eax, eax
je 0x51ebc0
mov edi, dword [eax + 0x32d]
add eax, 0x32d
xor esi, esi
cmp edi, eax
cmove edi, esi
test edi, edi
je 0x51ebc0
nop
mov eax, dword [edi + 8]
xorps xmm0, xmm0
movups xmmword [ebp - 0x105e0], xmm0
movups xmmword [ebp - 0x105d0], xmm0
mov esi, dword [eax + 0x26d]
mov eax, esi
bswap eax
mov dword [ebp - 0x1068c], esi
mov dword [ecx + 9], eax
mov byte [ebp - 4], 0x25
mov eax, dword [edx + 0x3ea]
mov al, byte [eax + 0x1a]
mov byte [ecx + 1], al
mov ecx, dword [edx + 0x3ea]
cmp al, byte [ecx + 0x18]
jne 0x51e9a1
test byte [ecx + 0xe2], 3
jne 0x51e9eb
xor edx, edx
mov eax, esi
div dword [ecx + 0xda]
mov eax, dword [ecx + 0xde]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51e9eb
cmp dword [eax + 4], esi
je 0x51e9d5
mov eax, dword [eax]
test eax, eax
jne 0x51e994
jmp 0x51e9eb
cmp al, byte [ecx + 0x19]
jne 0x51e9eb
test byte [ecx + 0x107], 3
jne 0x51e9eb
xor edx, edx
mov eax, esi
div dword [ecx + 0xff]
mov eax, dword [ecx + 0x103]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51e9eb
cmp dword [eax + 4], esi
je 0x51e9d5
mov eax, dword [eax]
test eax, eax
jne 0x51e9c8
jmp 0x51e9eb
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x105e0], xmm0
movups xmm0, xmmword [eax + 0x18]
movups xmmword [ebp - 0x105d0], xmm0
push 0x20
mov edx, 0x6ad9e0
lea ecx, [ebp - 0x105e0]
call fcn.004250e0
add esp, 4
test al, al
jne 0x51eb8f
mov eax, dword [ebp - 0x10644]
mov ecx, dword [eax + 0x3ea]
test byte [ecx + 0x1c4], 3
jne 0x51ea45
xor edx, edx
mov eax, esi
div dword [ecx + 0x1bc]
mov eax, dword [ecx + 0x1c0]
lea eax, [eax + edx*4]
mov eax, dword [eax]
test eax, eax
je 0x51ea45
cmp dword [eax + 4], esi
je 0x51ebd6
mov eax, dword [eax]
test eax, eax
jne 0x51ea36
call fcn.005faa00
push 4
lea ecx, [ebp - 0x10688]
push ecx
mov ecx, eax
call fcn.005fa710
mov eax, dword [ebp - 0x10688]
add eax, 1
mov dword [ebp - 0x10688], eax
jne 0x51ea76
mov eax, 1
mov dword [ebp - 0x10688], eax
mov esi, dword [ebp - 0x1065c]
push 1
mov dword [esi + 0xd], eax
mov eax, dword [ebp - 0x10644]
mov ecx, dword [eax + 0x3ea]
lea eax, [ebp - 0x10688]
push eax
lea eax, [ebp - 0x1068c]
add ecx, 0x1ac
push eax
call fcn.00429d00
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x10540], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ebp - 0x10530], xmm0
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x10520], eax
mov ax, word [esi + 0x24]
mov word [ebp - 0x1051c], ax
mov al, byte [esi + 0x26]
mov byte [ebp - 0x1051a], al
mov eax, 0xe
mov ch, al
mov dword [ebp - 0x1052f], 0
mov cl, ah
mov eax, dword [0x6ac610]
mov word [ebp - 0x1053d], cx
nop
bswap eax
mov dword [ebp - 0x1052b], eax
mov eax, dword [ebp - 0x10533]
mov dword [ebp - 0x106cc], eax
mov dword [ebp - 0x106c8], eax
call fcn.005fabe0
push ecx
lea ecx, [ebp - 0x106cc]
push ecx
lea ecx, [ebp - 0x10698]
push ecx
push 0x27
lea ecx, [ebp - 0x10540]
push ecx
lea ecx, [ebp - 0x105e0]
push ecx
mov ecx, eax
call fcn.005fa230
mov eax, dword [ebp - 0x10698]
xor eax, dword [ebp - 0x10694]
mov dword [ebp - 0x1052f], eax
call fcn.005fabe0
push 0
push 0
lea ecx, [ebp - 0x106cc]
push ecx
push 0x12
lea ecx, [ebp - 0x1052b]
push ecx
lea ecx, [ebp - 0x105e0]
push ecx
mov ecx, eax
call fcn.005fa040
push ecx
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x10519]
push 1
push eax
lea eax, [ebp - 0x10540]
push eax
call fcn.00523840
mov edx, dword [ebp - 0x10644]
xor esi, esi
mov eax, dword [edx + 0x3ea]
mov ecx, dword [eax + 0x1d1]
mov eax, dword [edi]
add ecx, 0x32d
cmp eax, ecx
mov edi, eax
mov ecx, dword [ebp - 0x1065c]
cmove edi, esi
test edi, edi
jne 0x51e930
mov ecx, 0x6a705c
mov dword [ebp - 4], 0xffffffff
call fcn.005e0810
jmp case.0x51c1e2.2
mov eax, dword [eax + 8]
jmp 0x51ea60
mov ecx, dword [edx + 0x1d1]
test ecx, ecx
je 0x51ec26
test byte [ecx + 0x2fb], 3
jne 0x51ec13
xor edx, edx
mov eax, esi
div dword [ecx + 0x2f3]
mov eax, dword [ecx + 0x2f7]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x51ec13
cmp dword [eax + 4], esi
je 0x51ec35
mov eax, dword [eax]
test eax, eax
jne 0x51ec08
push esi
push str.__UNUSED___vpn_client_recv_eVpnSCUdpInfoUpdate_sec_vpn_not_found_m_pData__m_pSecondaryVpn__m_hId2Conn.Find__d__pp__n
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [eax + 8]
mov dword [ebp - 0x10668], ecx
test ecx, ecx
je 0x51ec13
cmp dword [ecx + 0x3be], 3
jne 0x51ec26
push esi
push str.__UNUSED___vpn_send_to_the_next_next_eVpnSCUdpInfoUpdate___d__n
push 0x6a6e70
call fcn.0042abc0
mov ecx, dword [ebp - 0x10668]
add esp, 0xc
cmp dword [ecx + 0x3be], 3
jne 0x51ec26
mov esi, dword [ebp - 0x1065c]
push ecx
push 1
movzx eax, word [esi + 3]
mov edx, eax
shl eax, 8
shr edx, 8
movzx eax, ax
or edx, eax
add edx, edi
push edx
push esi
call fcn.00523840
mov ecx, 0x6a705c
call fcn.005e0810
jmp case.0x51c1e2.2
mov ecx, dword [ebp - 0x10644]
test edi, edi
jle 0x51ecda
cmp edi, esi
jl 0x51ecb9
mov dword [ecx + 0x3f6], 0
jmp 0x51ecda
sub esi, edi
lea eax, [edi + 0x40a]
add eax, ecx
mov dword [ecx + 0x3f6], esi
push esi
push eax
lea eax, [ecx + 0x40a]
push eax
call fcn.00609db0
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00606a47
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
lea ecx, [ebp - 0x10650]
call fcn.00406030
push edi
mov byte [ebp - 4], 1
lea eax, [ebp - 0x10650]
push dword [ebp - 0x106a0]
push str.Wrong_status_code___D__in_vpn_proxy_connection
push eax
call fcn.005abfb0
add esp, 0x10
lea ecx, [ebp - 0x10554]
push 0
push 1
call fcn.0042af70
lea ecx, [ebp - 0x10554]
call fcn.0042b180
test al, al
je 0x51ed59
lea eax, [ebp - 0x10650]
push eax
push 0x6549c8
push 0x6a6e70
call fcn.0042abc0
add esp, 0xc
lea ecx, [ebp - 0x10554]
call fcn.0042b120
lea ecx, [ebp - 0x10650]
call fcn.005a5da0
mov ecx, dword [ebp - 0x10644]
push eax
call fcn.005d3100
jmp 0x51ed7f
mov ecx, esi
push 0x651eaf
call fcn.005d3100
push str.No_Public_Key_Loaded_n
push 0x6a6e70
call fcn.0042abc0
mov ecx, dword [ebp - 0x10644]
add esp, 8
push 0x651eaf
call fcn.005d3100
push str.Server_has_no_RSA_keys
lea ecx, [ebp - 0x10664]
call fcn.005a5400
mov dword [ebp - 4], 2
lea eax, [ebp - 0x10664]
mov ecx, 0x6ad9d8
push eax
lea eax, [ebp - 0x10660]
push eax
call fcn.004f9380
lea ecx, [ebp - 0x10660]
call fcn.004250c0
lea eax, [ebp - 0x10664]
push eax
push 0x6549c8
push 0x6a6e70
call fcn.0042abc0
add esp, 8
mov ecx, esp
push 0x6aefbc
call fcn.005a5bd0
mov ecx, 7
call fcn.004f95f0
add esp, 4
mov ecx, edi
push 0x651eaf
call fcn.005d3100
push 0x6a3c10
lea eax, [ebp - 0x106d0]
mov dword [ebp - 0x106d0], 1
push eax
call fcn.006089ec
nop
jmp 0x7f524006