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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003f060
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.0x1003573c.33554440
jmp dword [eax*4 + 0x10035ca0]
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 0x10049aa8
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x10049ad0
lea edx, [ebp - 0x51c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x10049b00
lea eax, [ebp - 0x51c]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x10049b30
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x10049b60
lea edx, [ebp - 0x51c]
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x10049b88
lea eax, [ebp - 0x51c]
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x10049bb4
lea ecx, [ebp - 0x51c]
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x1c
jmp 0x100358e4
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 0x100358e4
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 0x100453c8
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 [0x1005a998]
test eax, eax
jne 0x1003593b
push 0x1004a088
call fcn.1002a4e0
mov dword [0x1005a998], eax
push 0
call fcn.1002a4c0
add esp, 8
push 0
mov ecx, dword [0x1005a998]
call fcn.1002a7b0
lea ecx, [ebp - 0x49c]
push ecx
push str._ts__job__s__start
mov edx, dword [0x1005a998]
push edx
call fcn.1002a620
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 [0x1005a998]
push eax
call fcn.1002a6a0
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.10039440
mov edi, eax
mov dword [ebp - 0x14], edi
push edi
push str._sac__SSLMSG_One_result_d
mov eax, dword [0x1005a998]
push eax
call fcn.1002a6a0
add esp, 0xc
jmp 0x10035a69
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
test edi, edi
jle 0x10035c1f
mov edx, dword [ebx + 8]
mov dword [ebx + 0xc], edx
mov edi, 0x10049c88
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [ebp - 0x554], ecx
mov dword [ebp - 0x55c], eax
je 0x10035ba8
movsx eax, byte [eax + 0x10049c88]
add eax, 0xffffffbd
cmp eax, 0x17
ja case.0x10035ab6.73
xor ecx, ecx
mov cl, byte [eax + 0x10035cf0]
jmp dword [ecx*4 + 0x10035cd4]
inc dword [ebx + 0xc]
jmp case.0x10035ab6.73
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax]
add eax, 4
mov dword [ebx + 0xc], eax
push ecx
call esi
jmp case.0x10035ab6.73
push 0x80
mov edx, dword [ebx + 0x1c]
push edx
mov ecx, ebx
call fcn.10037a20
jmp case.0x10035ab6.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.0x10035ab6.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 0x10035b89
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 0x10035b46
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 0x10035b86
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 0x10035a9b
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 [0x1005a998]
push ecx
call fcn.1002a620
add esp, 0x10
mov edx, dword [ebp + 0x14]
mov dword [edx], esi
test esi, esi
jne 0x10035be2
mov edi, dword [ebp - 0x18]
jmp 0x10035c60
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 [0x1005a998]
push eax
call fcn.1002a6e0
add esp, 0x10
or edi, 0xffffffff
jmp 0x10035c60
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 [0x1005a998]
push edx
call fcn.1002a6e0
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 [0x1005a998]
push ecx
call fcn.1002a620
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