Function at 0x5c1570
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x668588
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa4c
push ebx
push esi
push edi
push 0x400
lea eax, [ebp - 0x857]
push 0
push eax
mov byte [ebp - 0x858], 0
call fcn.006100a0
push 0x3ff
lea ecx, [ebp - 0x453]
push 0
push ecx
mov byte [ebp - 0x454], 0
call fcn.006100a0
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
add esp, 0x18
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 1
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 3
mov ebx, dword [ebp + 0xc]
mov ecx, 0xd
mov esi, str.http:__www.staffcop.ru_activation_check.php_version
lea edi, [ebp - 0x454]
rep movsd dword es:[edi], dword [esi]
mov eax, ebx
movsb byte es:[edi], byte [esi]
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5c1620
lea edi, [ebp - 0x454]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5c1632
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x454]
rep movsb byte es:[edi], byte [esi]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x5c1650
mov ecx, dword [str.ID]
mov dl, byte [0x682e3c]
mov dword [eax], ecx
mov byte [eax + 4], dl
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5c1670
lea edi, [ebp - 0x454]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5c1682
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x454]
rep movsb byte es:[edi], byte [esi]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x5c16a0
mov ecx, dword [str.hardw]
mov edx, dword [0x682e34]
mov dword [eax], ecx
mov dword [eax + 4], edx
lea eax, [ebp - 0x54]
push eax
call fcn.005c1480
add esp, 4
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 0x10
jb 0x5c16d1
mov eax, dword [eax]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5c16d3
lea edi, [ebp - 0x454]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5c16e3
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x40], 0x10
jb 0x5c1711
mov ecx, dword [ebp - 0x54]
push ecx
call fcn.0060faf6
add esp, 4
cmp dword [0x713c9c], 0
mov dword [ebp - 0x40], 0xf
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x54], 0
je 0x5c1e58
mov ecx, 7
mov esi, str._activation_check.php_version
lea edi, [ebp - 0x454]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, ebx
movsb byte es:[edi], byte [esi]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5c1750
lea edi, [ebp - 0x454]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5c1760
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x454]
rep movsb byte es:[edi], byte [esi]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x5c1780
mov edx, dword [str.ID]
mov cl, byte [0x682e3c]
mov dword [eax], edx
mov byte [eax + 4], cl
mov eax, dword [ebp + 0x10]
mov ecx, eax
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x5c17a0
lea edi, [ebp - 0x454]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5c17b2
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea eax, [ebp - 0x454]
rep movsb byte es:[edi], byte [esi]
dec eax
nop
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x5c17d0
mov edx, dword [str.hardw]
mov ecx, dword [0x682e34]
mov dword [eax], edx
lea edx, [ebp - 0x54]
push edx
mov dword [eax + 4], ecx
call fcn.005c1480
add esp, 4
mov byte [ebp - 4], 5
mov ebx, 0x10
cmp dword [eax + 0x14], ebx
jb 0x5c1805
mov eax, dword [eax]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5c1807
lea edi, [ebp - 0x454]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x5c1817
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [ebp - 4], 3
cmp dword [ebp - 0x40], ebx
jb 0x5c1844
mov eax, dword [ebp - 0x54]
push eax
call fcn.0060faf6
add esp, 4
mov edi, dword [0x713ca8]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp - 0x40], 0xf
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x54], 0
test edi, edi
jne 0x5c186a
xor eax, eax
jmp 0x5c188f
push edi
call esi
inc eax
cmp eax, 0x3fffffff
jle 0x5c1879
xor eax, eax
jmp 0x5c188f
lea ebx, [eax + eax]
mov eax, ebx
call fcn.006123b0
mov eax, esp
push 3
push ebx
push edi
push eax
call fcn.00403a80
push eax
lea ecx, [ebp - 0x1c]
call fcn.00415220
mov byte [ebp - 4], 6
push 1
push 0x6792bc
lea ecx, [ebp - 0x1c]
call fcn.00408e10
mov edi, dword [0x713ca4]
test edi, edi
jne 0x5c18bb
xor eax, eax
xor ecx, ecx
jmp 0x5c18f9
push edi
call esi
inc eax
cmp eax, 0x3fffffff
jle 0x5c18cc
xor eax, eax
xor ecx, ecx
jmp 0x5c18f9
lea ebx, [eax + eax]
mov eax, ebx
call fcn.006123b0
mov eax, esp
push 3
push ebx
push edi
push eax
call fcn.00403a80
test eax, eax
jne 0x5c18ea
xor ecx, ecx
jmp 0x5c18f9
mov ecx, eax
lea edi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x5c18f0
sub ecx, edi
push ecx
push eax
lea ecx, [ebp - 0x1c]
call fcn.00408e10
mov eax, dword [ebp - 0x1c]
cmp dword [eax - 4], 1
jle 0x5c191b
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00404a90
mov eax, dword [ebp - 0x1c]
push 0
push 0
push eax
push 3
push str.StaffcopAppProxy
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebx, eax
test ebx, ebx
jne 0x5c19a8
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5c1956
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c1979
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c22ba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5c22ba
push 0
push 0
push 3
push 0
push 0
push 0x50
push str.www.staffcop.ru
push ebx
call dword [sym.imp.WININET.dll_InternetConnectA]
mov edi, eax
test edi, edi
jne 0x5c1a18
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c19f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c1a13
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5c1979
mov eax, dword [0x713cac]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x5c1a4c
push eax
call esi
inc eax
cmp eax, 0x3fffffff
jle 0x5c1a33
xor eax, eax
jmp 0x5c1a4c
lea esi, [eax + eax]
mov eax, esi
call fcn.006123b0
mov ecx, dword [ebp - 0x30]
mov eax, esp
push 3
push esi
push ecx
push eax
call fcn.00403a80
push eax
lea ecx, [ebp - 0x28]
call fcn.00415220
mov byte [ebp - 4], 0xd
mov esi, dword [0x713cb0]
test esi, esi
jne 0x5c1a67
xor eax, eax
jmp 0x5c1a93
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
inc eax
cmp eax, 0x3fffffff
jle 0x5c1a7a
xor eax, eax
jmp 0x5c1a93
add eax, eax
mov dword [ebp - 0x30], eax
call fcn.006123b0
mov edx, dword [ebp - 0x30]
mov eax, esp
push 3
push edx
push esi
push eax
call fcn.00403a80
push eax
lea ecx, [ebp - 0x20]
call fcn.00415220
mov byte [ebp - 4], 0xe
cmp dword [0x713c98], 0
je 0x5c1b39
lea eax, [ebp - 0x28]
push 0x66f16a
push eax
call fcn.004144b0
add esp, 8
test al, al
je 0x5c1b39
mov eax, dword [ebp - 0x28]
cmp dword [eax - 4], 1
mov esi, dword [eax - 0xc]
jle 0x5c1ada
push esi
lea ecx, [ebp - 0x28]
call fcn.00404a90
mov eax, dword [ebp - 0x28]
push esi
mov esi, dword [sym.imp.WININET.dll_InternetSetOptionA]
push eax
push 0x2b
push edi
call esi
test eax, eax
jne 0x5c1b20
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
call esi
push ebx
call esi
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004014a0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call fcn.004014a0
jmp 0x5c229f
mov edx, dword [ebp - 0x20]
mov eax, dword [edx - 0xc]
push eax
lea ecx, [ebp - 0x20]
call fcn.00404c30
push eax
push 0x2c
push edi
call esi
test eax, eax
je 0x5c1aeb
push 0
push 0x400000
push 0
push 0x66f16a
push str.HTTP_1.1
lea eax, [ebp - 0x454]
push eax
push 0x679288
push edi
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov esi, eax
test esi, esi
je 0x5c1aeb
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x5c1aeb
push 0
lea ecx, [ebp - 0x2c]
push ecx
lea edx, [ebp - 0xa58]
push edx
push 0x16
push esi
mov dword [ebp - 0x2c], 0x200
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x5c1aeb
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x20]
call fcn.004014a0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x1c]
call fcn.004014a0
push 0x66f16a
lea ecx, [ebp - 0x10]
call fcn.00405830
push 0
push 0x66f16a
lea ecx, [ebp - 0x14]
call fcn.00408c70
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
lea ecx, [ebp - 0x34]
push ecx
push 0x400
lea edx, [ebp - 0x858]
push edx
push esi
mov dword [ebp - 0x34], 0
call edi
cmp dword [ebp - 0x34], 0
je 0x5c1c5b
jmp 0x5c1c10
lea eax, [ebp - 0x858]
push eax
lea ecx, [ebp - 0x14]
push 0x67f3d4
push ecx
call fcn.0043b3f0
push 0x401
lea edx, [ebp - 0x858]
push 0
push edx
call fcn.006100a0
add esp, 0x18
lea eax, [ebp - 0x34]
push eax
push 0x400
lea ecx, [ebp - 0x858]
push ecx
push esi
mov dword [ebp - 0x34], 0
call edi
cmp dword [ebp - 0x34], 0
jne 0x5c1c10
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push ebx
call esi
mov edx, dword [ebp - 0x14]
mov ebx, dword [edx - 0xc]
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea eax, [ebx*8]
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x5c1cd3
mov eax, dword [ebp - 0x14]
cmp dword [eax - 4], 1
jle 0x5c1ca4
mov ecx, dword [eax - 0xc]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00404a90
mov eax, dword [ebp - 0x14]
push ebx
push esi
push ebx
push eax
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push esi
lea edx, [ebp - 0x10]
push 0x66edc0
push edx
call fcn.00405ab0
add esp, 0xc
push esi
push 0
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
jle 0x5c229f
push 0x7b
push eax
call fcn.00611e99
add esp, 8
test eax, eax
je 0x5c229f
mov ecx, dword [ebp - 0x10]
sub eax, ecx
sar eax, 1
mov esi, eax
cmp esi, 0xffffffff
je 0x5c229f
push 0x7d
push ecx
call fcn.00613b38
add esp, 8
test eax, eax
je 0x5c229f
sub eax, dword [ebp - 0x10]
sar eax, 1
cmp eax, 0xffffffff
je 0x5c229f
sub eax, esi
dec eax
push eax
inc esi
push esi
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x10]
call fcn.00405730
mov byte [ebp - 4], 0x13
push eax
lea ecx, [ebp - 0x10]
call fcn.004078d0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2c]
call fcn.004014a0
lea ecx, [ebp - 0x10]
call fcn.00433a90
mov ecx, eax
call fcn.00433920
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.004011f0
add eax, 0x10
add esp, 4
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0x15
push 0x66f16a
lea ecx, [ebp - 0x10]
call fcn.00405830
mov bl, 0x18
jmp 0x5c1d90
mov ecx, dword [ebp - 0x24]
cmp dword [ecx - 0xc], 0
jl 0x5c1ee8
push 0x66ea40
push ecx
call fcn.00612c90
mov ecx, dword [ebp - 0x24]
add esp, 8
test eax, eax
je 0x5c1ee8
sub eax, ecx
sar eax, 1
mov esi, eax
cmp esi, 0xffffffff
je 0x5c1ee8
push esi
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x24]
call fcn.00414520
mov byte [ebp - 4], 0x16
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.00401710
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x2c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5c1e08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx - 0xc]
sub eax, esi
dec eax
push eax
inc esi
push esi
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x24]
call fcn.00405730
mov byte [ebp - 4], bl
push eax
lea ecx, [ebp - 0x24]
call fcn.004078d0
mov byte [ebp - 4], 0x15
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c1d90
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5c1d90
push 0
push 0
push 0
push 0
push str.StaffcopApp
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebx, eax
test ebx, ebx
jne 0x5c1e99
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c1e94
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5c1979
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x454]
push ecx
push ebx
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov esi, eax
test esi, esi
jne 0x5c1bc5
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5c1ee3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x5c1979
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [ebp - 0x10]
call fcn.00401710
mov edx, dword [0x700724]
mov eax, dword [edx + 0xc]
mov ecx, 0x700724
mov dword [ebp - 0x2c], 0
call eax
add eax, 0x10
mov dword [ebp - 0x18], eax
mov bl, 0x1b
mov byte [ebp - 4], bl
mov edi, dword [ebp + 0x14]
lea ebx, [ebx]
lea ecx, [ebp - 0x2c]
push ecx
push 0x66fe3c
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp - 0x10]
call fcn.0040d920
mov byte [ebp - 4], 0x1c
push eax
lea ecx, [ebp - 0x18]
call fcn.004078d0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c1f64
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x18]
call fcn.00433a90
mov ecx, eax
call fcn.00433920
mov eax, dword [ebp - 0x18]
mov edx, dword [eax - 0xc]
test edx, edx
jle 0x5c1fd6
lea ecx, [edx - 1]
test ecx, ecx
js 0x5c213b
cmp ecx, edx
jg 0x5c213b
cmp word [eax + ecx*2], 0x2c
jne 0x5c1fd6
lea eax, [edx - 1]
push eax
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x18]
call fcn.00414520
mov byte [ebp - 4], 0x1e
push eax
lea ecx, [ebp - 0x18]
call fcn.004078d0
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x5c1fd6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x28]
push ecx
push 0x671890
lea edx, [ebp - 0x20]
push edx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x28], 0
call fcn.0040d920
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x20]
push 0x66f16a
push eax
call fcn.0040b580
add esp, 8
test al, al
je 0x5c205e
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx - 0xc]
sub eax, dword [ebp - 0x28]
lea edx, [ebp - 0x38]
dec eax
push eax
push edx
lea ecx, [ebp - 0x18]
call fcn.00427cb0
mov esi, eax
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.004cb880
push esi
mov ecx, eax
call fcn.004078d0
mov byte [ebp - 4], 0x20
mov eax, dword [ebp - 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c205e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x5c2080
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp - 0x18]
push 0x66f16a
push ecx
call fcn.0040b580
add esp, 8
test al, al
jne 0x5c1f20
push str.Status
lea ecx, [ebp - 0x20]
call fcn.0040aab0
mov byte [ebp - 4], 0x24
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x38]
push eax
mov ecx, edi
call fcn.00464500
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x20]
call fcn.004014a0
mov esi, dword [ebp - 0x38]
cmp esi, dword [edi + 4]
je 0x5c2287
lea ecx, [esi + 0x10]
push str.ERROR
push ecx
call fcn.0045aef0
add esp, 8
test al, al
jne 0x5c2287
lea edx, [esi + 0x10]
push str.EXPIRED
push edx
call fcn.0045aef0
add esp, 8
test al, al
je 0x5c2145
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004014a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.004014a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
mov eax, 1
jmp 0x5c22bf
push 0x80070057
call fcn.004011d0
lea eax, [esi + 0x10]
push str.TOOMANY
push eax
call fcn.0045aef0
add esp, 8
test al, al
je 0x5c2197
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004014a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.004014a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
mov eax, 2
jmp 0x5c22bf
lea ecx, [esi + 0x10]
push str.BLOCKED
push ecx
call fcn.0045aef0
add esp, 8
test al, al
je 0x5c21e9
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004014a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.004014a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
mov eax, 4
jmp 0x5c22bf
lea edx, [esi + 0x10]
push str.NOTFOUND
push edx
call fcn.0045aef0
add esp, 8
test al, al
je 0x5c223b
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004014a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.004014a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
mov eax, 5
jmp 0x5c22bf
push str.SUCCESS
add esi, 0x10
push esi
call fcn.0045aef0
add esp, 8
test al, al
je 0x5c2287
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004014a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.004014a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
xor eax, eax
jmp 0x5c22bf
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x18]
call fcn.004014a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x24]
call fcn.004014a0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x14]
call fcn.004014a0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.004014a0
mov eax, 3
lea esp, [ebp - 0xa64]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret