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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1002edd0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x580
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x51c], 0
mov ecx, 0x1f
xor eax, eax
lea edi, [ebp - 0x51b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebx + 8]
mov eax, dword [eax]
push eax
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
call esi
add eax, 0xfdfffffe
cmp eax, 0xc
ja case.0x1001b8ec.33554440
jmp dword [eax*4 + 0x1001be50]
push 0x2000002
push str.MSG_SAC_GET_PORTAL
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x10035b74
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x2000003
push str.MSG_SAC_LOGIN
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0x10035b9c
lea edx, [ebp - 0x51c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x2000004
push str.MSG_SAC_LOGIN_CHOICE
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 0x10]
push edx
push 0x10035bcc
lea eax, [ebp - 0x51c]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x2000005
push str.MSG_SAC_GET_USERDATA
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x10035bfc
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x2000006
push str.MSG_SAC_PUT_HOSTBIND
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0x10035c2c
lea edx, [ebp - 0x51c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x2000007
push str.MSG_SAC_LOGOUT
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 0x10]
push edx
push 0x10035c54
lea eax, [ebp - 0x51c]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x200000d
push str.MSG_SAC_HEART_BEAT
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x10035c80
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
push 0x200000e
push str.MSG_SAC_UPDATE_PASSWD
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push str._s__s:_d___s_0x_08x_
lea edx, [ebp - 0x51c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x1001ba94
mov eax, dword [ebx + 8]
mov eax, dword [eax]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp + 0x10]
push eax
push str._s__s:_d__Unkown_0x_08x_
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x18
lea edx, [ebp - 0x51c]
push edx
push 0x10033ac0
lea eax, [ebp - 0x49c]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x41c], eax
mov eax, dword [0x100477e0]
test eax, eax
jne 0x1001baeb
push 0x10036154
call fcn.10014720
mov dword [0x100477e0], eax
push 0
call fcn.10014700
add esp, 8
push 0
mov ecx, dword [0x100477e0]
call fcn.100149f0
lea ecx, [ebp - 0x49c]
push ecx
push str._ts__job__s__start
mov edx, dword [0x100477e0]
push edx
call fcn.10014860
add esp, 0xc
mov dword [ebp - 0x14], 0xffffffff
mov byte [ebp - 0x418], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x417]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
sub eax, edi
sub eax, 8
push eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [edi + 4], eax
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
sub ecx, eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 4], 0
mov dword [ebp - 0x538], eax
mov edi, eax
mov dword [ebp - 0x53c], edi
mov dword [ebp - 0x540], eax
push 0x2fffc0
mov ecx, dword [eax + 4]
push ecx
call esi
push eax
add edi, 8
push edi
mov edx, dword [ebp - 0x540]
mov eax, dword [edx]
push eax
call esi
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
push str._sac__SSLMSG_One__s__d__x__p__d__d_
mov eax, dword [0x100477e0]
push eax
call fcn.100148e0
add esp, 0x20
mov eax, dword [ebx + 8]
mov dword [ebp - 0x544], eax
mov edi, eax
mov dword [ebp - 0x548], edi
mov dword [ebp - 0x54c], eax
push 0x2fffc0
mov ecx, dword [eax + 4]
push ecx
call esi
push eax
add edi, 8
push edi
mov edx, dword [ebp - 0x54c]
mov eax, dword [edx]
push eax
call esi
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.10024ff0
mov edi, eax
mov dword [ebp - 0x14], edi
push edi
push str._sac__SSLMSG_One_result_d
mov eax, dword [0x100477e0]
push eax
call fcn.100148e0
add esp, 0xc
jmp 0x1001bc19
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
test edi, edi
jle 0x1001bdcf
mov edx, dword [ebx + 8]
mov dword [ebx + 0xc], edx
mov edi, 0x10035d54
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x554], ecx
mov dword [ebp - 0x55c], eax
je 0x1001bd58
movsx eax, byte [eax + 0x10035d54]
add eax, 0xffffffbd
cmp eax, 0x17
ja case.0x1001bc66.73
xor ecx, ecx
mov cl, byte [eax + 0x1001bea0]
jmp dword [ecx*4 + 0x1001be84]
inc dword [ebx + 0xc]
jmp case.0x1001bc66.73
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebx + 0xc], eax
push ecx
call esi
jmp case.0x1001bc66.73
push 0x80
mov edx, dword [ebx + 0x1c]
push edx
mov ecx, ebx
call fcn.10007db0
jmp case.0x1001bc66.73
mov eax, dword [ebx + 0xc]
mov cx, word [eax]
add eax, 2
mov dword [ebx + 0xc], eax
push ecx
call dword [sym.imp.WS2_32.dll_ntohs]
jmp case.0x1001bc66.73
mov ecx, 8
mov esi, dword [ebx + 0xc]
mov edi, dword [ebx + 0x1c]
rep movsd dword es:[edi], dword [esi]
add dword [ebx + 0xc], 0x20
jmp 0x1001bd39
mov edi, dword [ebx + 0x1c]
mov dword [ebp - 0x578], edi
mov ecx, 0xa00
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebx + 0xc], eax
push ecx
call esi
cmp eax, 0x2800
mov ecx, 0x2800
ja 0x1001bcf6
mov ecx, eax
mov dword [ebp - 0x57c], ecx
mov esi, dword [ebx + 0xc]
mov edi, dword [ebp - 0x578]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
mov edx, dword [ebp - 0x578]
mov byte [ecx + edx], 0
mov ecx, eax
shr ecx, 2
lea edx, [ecx*4]
cmp edx, eax
je 0x1001bd36
lea eax, [ecx*4 + 4]
add dword [ebx + 0xc], eax
mov esi, dword [sym.imp.WS2_32.dll_ntohl]
mov eax, dword [ebp - 0x55c]
inc eax
mov dword [ebp - 0x55c], eax
cmp eax, dword [ebp - 0x554]
jb 0x1001bc4b
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebx + 0xc], eax
push ecx
call esi
mov esi, eax
push esi
lea eax, [ebp - 0x51c]
push eax
push str._sacmsg__sac_broker_send_to_device__s._sac_reply0x_08x
mov ecx, dword [0x100477e0]
push ecx
call fcn.10014860
add esp, 0x10
mov edx, dword [ebp + 0x14]
mov dword [edx], esi
test esi, esi
jne 0x1001bd92
mov edi, dword [ebp - 0x18]
jmp 0x1001be10
push esi
lea eax, [ebp - 0x51c]
push eax
push str._s_fail__SAC_reply_0x_08x.
lea ecx, [ebp - 0x418]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
push esi
lea edx, [ebp - 0x51c]
push edx
push str._sacmsg__sac_broker_send_to_device__s_failed._sac_reply0x_08x
mov eax, dword [0x100477e0]
push eax
call fcn.10014920
add esp, 0x10
or edi, 0xffffffff
jmp 0x1001be10
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xa95f74
push edi
lea edx, [ebp - 0x51c]
push edx
push str.sac_broker_send_to_device__s_failed__connection_error:__d.
lea eax, [ebp - 0x418]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
lea ecx, [ebp - 0x51c]
push ecx
push str._sac__sac_broker_send_to_device__s_failed:_connection_error.
mov edx, dword [0x100477e0]
push edx
call fcn.10014920
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0x41c]
push eax
lea eax, [ebp - 0x49c]
push eax
push str._ts__job__s__finised__time_elapsed__d_ms
mov ecx, dword [0x100477e0]
push ecx
call fcn.10014860
add esp, 0x10
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14