joyce8/EMBER2024-capa huggingface dataset:
Function at 0x413e70
Capabilities:
Encrypt data using curve25519

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x144
mov eax, dword [0x698b9c]
xor eax, esp
mov dword [esp + 0x140], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
push edi
mov ecx, 8
lea edi, [esp + 0x12c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x148]
and byte [esp + 0x12c], 0xf8
shr ecx, 0x18
and cl, 0x3f
or cl, 0x40
lea edx, [esp + 0x60]
mov byte [esp + 0x14b], cl
push edx
lea ecx, [esp + 0x130]
mov dword [esp + 0x10], eax
call fcn.00412ea0
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
add ecx, eax
sub eax, dword [esp + 0x8c]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xb8]
add edx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0xbc]
add esi, edx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0xc0]
add edi, esi
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0xc4]
add edi, ebx
mov ebx, dword [esp + 0xa0]
sub ecx, dword [esp + 0x90]
sub edx, dword [esp + 0x94]
sub esi, dword [esp + 0x98]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0xc8]
add edi, ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc4]
sub eax, dword [esp + 0x9c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0xcc]
add edi, ebx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc8]
sub eax, dword [esp + 0xa0]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0xd0]
add edi, ebx
mov ebx, dword [esp + 0xac]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0xa4]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0xd4]
add edi, ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0xd8]
add ebx, edi
add esp, 4
sub eax, dword [esp + 0xa4]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], esi
sub eax, dword [esp + 0xa8]
sub edi, dword [esp + 0xac]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x104]
push eax
lea eax, [esp + 0x3c]
mov dword [esp + 0x60], edi
call fcn.00411810
lea ecx, [esp + 0x14]
add esp, 4
push ecx
lea eax, [esp + 0x108]
call fcn.0040f5b0
mov eax, dword [esp + 0x10]
add esp, 4
lea ecx, [esp + 0x10]
call fcn.0040f260
lea edx, [esp + 0x12c]
push 0x20
push edx
call fcn.0051db60
mov ecx, dword [esp + 0x154]
add esp, 8
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005bfcb8
mov esp, ebp
pop ebp
ret
Function at 0x414290
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
xor ecx, ecx
push ebx
mov dword [edi], ecx
mov dword [edi + 4], ecx
mov dword [edi + 8], ecx
mov dword [edi + 0xc], ecx
mov edx, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
push ebp
push esi
mov esi, dword [eax + 0xc]
mov dword [edi + 0x80], edx
mov dword [edi + 0x84], ebx
mov dword [edi + 0x88], ecx
mov dword [esp + 0x14], ebx
mov dword [edi + 0x8c], esi
mov dword [esp + 0xc], 4
mov eax, ecx
shrd ecx, esi, 1
xor ebp, ebp
or ebp, ecx
mov ecx, ebp
mov ebp, dword [esp + 0x14]
mov ebx, edx
shl ebx, 0x1f
and eax, 1
shr esi, 1
or ebx, esi
shrd edx, ebp, 1
neg eax
mov esi, ebx
xor ebx, ebx
and eax, 0xe1000000
xor ebx, edx
shr ebp, 1
xor eax, ebp
mov edx, ebx
mov ebx, dword [esp + 0xc]
mov ebp, eax
mov eax, ebx
shl eax, 4
add eax, edi
mov dword [eax], edx
sar ebx, 1
mov dword [eax + 4], ebp
mov dword [eax + 8], ecx
mov dword [esp + 0x14], ebp
mov dword [eax + 0xc], esi
mov dword [esp + 0xc], ebx
test ebx, ebx
jg 0x4142d2
mov ebx, 2
mov dword [esp + 0xc], ebx
mov ecx, ebx
shl ecx, 4
mov eax, dword [ecx + edi]
mov edx, dword [ecx + edi + 4]
add ecx, edi
cmp ebx, 1
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x14], edx
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jle 0x4143a0
mov esi, edi
lea eax, [ecx + 0x18]
sub esi, ecx
lea edx, [edi + 0x10]
lea ecx, [ebx - 1]
mov ebx, dword [esp + 0x10]
xor ebx, dword [edx]
mov ebp, dword [esp + 0x14]
xor ebp, dword [edx + 4]
mov dword [eax - 8], ebx
mov dword [eax - 4], ebp
mov ebx, dword [esi + eax]
mov ebp, dword [esi + eax + 4]
xor ebx, dword [esp + 0x18]
xor ebp, dword [esp + 0x1c]
mov dword [eax], ebx
mov dword [eax + 4], ebp
add edx, 0x10
add eax, 0x10
sub ecx, 1
jne 0x41436a
mov ebx, dword [esp + 0xc]
add ebx, ebx
cmp ebx, 0x10
mov dword [esp + 0xc], ebx
jl 0x414334
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
Function at 0x414460
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov eax, dword [esi + 0x160]
push ebx
mov ebx, dword [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x20], eax
xor eax, eax
push edi
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x16c], eax
mov dword [esi + 0x168], eax
cmp ebp, 0xc
jne 0x4144bc
mov ecx, dword [ebx]
mov dword [esi], ecx
mov edx, dword [ebx + 4]
mov dword [esi + 4], edx
mov ecx, dword [ebx + 8]
mov dword [esi + 8], ecx
mov byte [esi + 0xc], al
mov byte [esi + 0xd], al
mov byte [esi + 0xe], al
mov byte [esi + 0xf], 1
lea ebp, [eax + 1]
jmp 0x41459c
lea edi, [esi + 0x40]
mov ecx, ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
cmp ebp, 0x10
jb 0x414536
mov eax, ebp
shr eax, 4
mov dword [esp + 0x10], eax
lea eax, [esi + 0x41]
lea ecx, [ebx + 1]
mov dword [esp + 0xc], 4
movzx edx, byte [ecx - 1]
xor byte [eax - 1], dl
movzx edx, byte [ecx]
xor byte [eax], dl
movzx edx, byte [ecx + 1]
xor byte [eax + 1], dl
movzx edx, byte [ecx + 2]
xor byte [eax + 2], dl
add ecx, 4
add eax, 4
sub dword [esp + 0xc], 1
jne 0x4144f0
lea eax, [esi + 0x60]
push eax
push edi
call dword [esp + 0x2c]
add esp, 8
add ebx, 0x10
sub ebp, 0x10
sub dword [esp + 0x10], 1
jne 0x4144e2
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp ebp, eax
je 0x41455b
jbe 0x41454b
lea esp, [esp]
mov cl, byte [eax + ebx]
xor byte [edi + eax], cl
inc eax
cmp eax, ebp
jb 0x414540
lea edx, [esi + 0x60]
push edx
push edi
call dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esp + 0x18]
shld eax, ecx, 3
add ecx, ecx
bswap eax
xor dword [esi + 0x48], eax
add ecx, ecx
lea eax, [esi + 0x60]
add ecx, ecx
push eax
bswap ecx
xor dword [esi + 0x4c], ecx
push edi
call dword [esp + 0x2c]
mov ecx, dword [edi]
mov eax, dword [esi + 0x48]
mov ebp, dword [esi + 0x4c]
mov edx, dword [edi + 4]
mov dword [esi], ecx
mov ecx, dword [esi + 0x4c]
add esp, 8
mov dword [esi + 8], eax
bswap ebp
mov dword [esi + 4], edx
mov dword [esi + 0xc], ecx
xor eax, eax
mov edx, dword [esi + 0x174]
mov ecx, dword [esi + 0x170]
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
push edx
lea eax, [esi + 0x20]
push eax
push esi
call ecx
add esp, 0xc
inc ebp
bswap ebp
pop edi
mov dword [esi + 0xc], ebp
pop ebp
pop ebx
add esp, 0x10
ret
Function at 0x4145d0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 8
mov ecx, dword [esi + 0x38]
or ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x164]
mov edx, dword [esi + 0x160]
push ebx
mov ebx, dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x14]
push edi
mov dword [esp + 0xc], eax
je 0x414602
mov eax, 0xfffffffe
pop edi
pop ebp
pop ebx
add esp, 8
ret
xor eax, eax
mov ecx, ebx
add ecx, dword [esi + 0x30]
adc eax, dword [esi + 0x34]
cmp eax, 0x20000000
ja 0x4146a2
jb 0x414621
test ecx, ecx
ja 0x4146a2
mov edi, dword [esi + 0x16c]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], eax
test edi, edi
je 0x414657
test ebx, ebx
je 0x414646
mov al, byte [ebp]
xor byte [edi + esi + 0x40], al
inc edi
inc ebp
dec ebx
and edi, 0xf
jne 0x414631
jmp 0x41464a
test edi, edi
jne 0x414693
lea ecx, [esi + 0x60]
push ecx
lea eax, [esi + 0x40]
push eax
call edx
add esp, 8
mov eax, ebx
and eax, 0xfffffff0
mov dword [esp + 0x10], eax
je 0x41467b
push eax
push ebp
lea ecx, [esi + 0x60]
push ecx
lea edx, [esi + 0x40]
push edx
call dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
add esp, 0x10
add ebp, eax
sub ebx, eax
test ebx, ebx
je 0x414693
xor eax, eax
mov edi, ebx
test ebx, ebx
jbe 0x414693
mov cl, byte [eax + ebp]
xor byte [esi + eax + 0x40], cl
inc eax
cmp eax, ebx
jb 0x414687
mov dword [esi + 0x16c], edi
xor eax, eax
pop edi
pop ebp
pop ebx
add esp, 8
ret
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 8
ret

Function at 0x414a30
Capabilities:
Hash data using sha256

Disassembly:
xor ecx, ecx
mov dword [eax], 0xf3bcc908
mov dword [eax + 4], 0x6a09e667
mov dword [eax + 8], 0x84caa73b
mov dword [eax + 0xc], 0xbb67ae85
mov dword [eax + 0x10], 0xfe94f82b
mov dword [eax + 0x14], 0x3c6ef372
mov dword [eax + 0x18], 0x5f1d36f1
mov dword [eax + 0x1c], 0xa54ff53a
mov dword [eax + 0x20], 0xade682d1
mov dword [eax + 0x24], 0x510e527f
mov dword [eax + 0x28], 0x2b3e6c1f
mov dword [eax + 0x2c], 0x9b05688c
mov dword [eax + 0x30], 0xfb41bd6b
mov dword [eax + 0x34], 0x1f83d9ab
mov dword [eax + 0x38], 0x137e2179
mov dword [eax + 0x3c], 0x5be0cd19
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0xd0], ecx
mov dword [eax + 0xd4], 0x40
lea eax, [ecx + 1]
ret
Function at 0x4164c0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push 0xffffffffffffffff
push 0x60cc88
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x698b9c]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
or eax, 0xffffffff
mov ebx, 1
mov dword [esi + 0x1034], edi
mov dword [esi + 0x18], edi
mov dword [esi + 0x14], eax
mov dword [esi + 0x1030], edi
mov dword [esi + 0x102c], edi
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
cmp dword [0x69aaa4], ebx
jg 0x416531
mov eax, dword [esi + 4]
push eax
push str.CHttpProvider::HttpProviderData::OnConnectRelease_status_d
push 0x37
push str.....mttpHttpProvider.cpp
push ebx
call fcn.00401310
add esp, 0x14
cmp dword [esi + 4], 7
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
je 0x416546
mov edx, dword [eax + 0x40]
call edx
jmp 0x416610
mov edx, dword [eax + 0xc]
push str.Connection
call edx
cmp eax, edi
je 0x416634
push str.Keep_Alive
push eax
call fcn.005c048d
add esp, 8
test eax, eax
jne 0x416606
cmp dword [esi + 4], ebx
je 0x41657f
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xc], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push str.Keep_Alive
call edx
cmp eax, edi
je 0x4165e5
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00417a20
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esi + 8], eax
mov dword [esi + 0x10], ecx
cmp dword [0x69aaa4], ebx
jg 0x41667a
push ecx
push eax
push str.Keep_Alive_____timeout_d__max_d
push 0x4c
push str.....mttpHttpProvider.cpp
push ebx
call fcn.00401310
add esp, 0x18
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret
mov dword [esi + 8], 0x1e
mov dword [esi + 0x10], 0xa
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret
mov ecx, dword [esi + 0x28]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
call eax
cmp dword [esi + 4], edi
je 0x41667a
mov dword [esi + 4], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xc], eax
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret
mov eax, dword [esi + 0x28]
add eax, 0x24
push str.Connection
push eax
call fcn.00417d50
cmp eax, edi
je 0x41667a
push str.Keep_Alive
push eax
call fcn.005c048d
add esp, 8
test eax, eax
jne 0x41667a
cmp dword [esi + 4], ebx
je 0x41666c
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xc], eax
mov dword [esi + 8], 0x14
mov dword [esi + 0x10], 0x64
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x18
ret
Function at 0x4167e0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, dword [edi + 0x40]
mov edx, dword [esi + 4]
lea eax, [edx - 3]
cmp eax, 4
ja case.0x4167f8.5
jmp dword [eax*4 + 0x416920]
cmp dword [esi + 0x14], 0
jl 0x416820
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
mov ecx, esi
call fcn.00416110
pop edi
pop esi
ret 0x10
mov ecx, dword [esi + 0x24]
push ebx
mov ebx, dword [esi + 0x20]
mov eax, ebx
or eax, ecx
jne 0x41684a
mov eax, 7
cmp edx, eax
je 0x416842
mov dword [esi + 4], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xc], eax
pop ebx
pop edi
xor eax, eax
pop esi
ret 0x10
test ecx, ecx
jg 0x41686d
jl 0x416854
test ebx, ebx
jae 0x41686d
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
push ecx
push edx
call fcn.004162d0
pop ebx
pop edi
pop esi
ret 0x10
mov eax, dword [esp + 0x18]
mov edi, eax
cdq
cmp ecx, edx
jg 0x416880
jl 0x41687e
cmp ebx, eax
jae 0x416880
mov edi, ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
push eax
push ecx
mov eax, edi
call fcn.004162d0
mov edi, eax
test edi, edi
jge 0x4168a0
pop ebx
pop edi
or eax, 0xffffffff
pop esi
ret 0x10
mov eax, edi
cdq
sub dword [esi + 0x20], eax
sbb dword [esi + 0x24], edx
cmp dword [esi + 0x24], 0
jg 0x4168cd
jl 0x4168b7
cmp dword [esi + 0x20], 0
ja 0x4168cd
mov eax, 7
cmp dword [esi + 4], eax
je 0x4168cd
mov dword [esi + 4], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0xc], eax
mov edx, dword [esi + 0x20]
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x24]
mov dword [esi + 0x24], eax
pop ebx
mov eax, edi
pop edi
pop esi
ret 0x10
push edi
call fcn.00416fc0
test eax, eax
je 0x416916
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [edi]
mov edx, dword [edx + 0x34]
push eax
mov eax, dword [esp + 0x14]
push ecx
push eax
mov ecx, edi
call edx
pop edi
pop esi
ret 0x10
pop edi
xor eax, eax
pop esi
ret 0x10
mov dword [edi + 8], 9
pop edi
or eax, 0xffffffff
pop esi
ret 0x10
Function at 0x416fc0
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x14]
push esi
mov esi, dword [ebx + 0x40]
push 2
mov eax, esi
call fcn.00415fc0
test eax, eax
jne 0x416fe8
pop esi
mov dword [ebx + 8], 0xb
pop ebx
add esp, 0xc
ret 4
mov ecx, dword [ebx + 0x34]
xor eax, eax
push ebp
push edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x417116
nop
mov edx, dword [ebx + 0x2c]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x14], edi
test edi, edi
je 0x417109
mov edx, dword [edi]
mov eax, edx
lea ebx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417020
sub eax, ebx
mov ebp, eax
mov eax, dword [edi + 4]
lea ebx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x417031
sub eax, ebx
push ebp
mov ebx, eax
push edx
mov eax, 1
mov ecx, esi
call fcn.00416080
cmp ebp, eax
jne 0x4171d0
cmp dword [esi + 0x1034], 1
je 0x4171d0
mov eax, 0x1000
sub eax, dword [esi + 0x102c]
mov ebp, 2
cmp eax, ebp
jge 0x417087
lea edi, [ebp - 1]
call fcn.00416040
test eax, eax
je 0x4171d0
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + 0x102c]
mov dx, word [0x6772d8]
mov word [esi + ecx + 0x2c], dx
add dword [esi + 0x102c], ebp
mov edi, dword [edi + 4]
push ebx
push edi
mov eax, 1
mov ecx, esi
call fcn.00416080
cmp ebx, eax
jne 0x4171d0
mov edi, 1
cmp dword [esi + 0x1034], edi
je 0x4171d0
mov eax, 0x1000
sub eax, dword [esi + 0x102c]
cmp eax, ebp
jge 0x4170e5
call fcn.00416040
test eax, eax
je 0x4171d0
mov ecx, dword [esi + 0x102c]
mov dx, word [0x6764a8]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov word [esi + ecx + 0x2c], dx
add dword [esi + 0x102c], ebp
mov ecx, dword [esp + 0x18]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x417000
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, 1
cmp dword [esi + 0x1034], edi
je 0x41719c
mov eax, 0x1000
sub eax, dword [esi + 0x102c]
cmp eax, 2
jge 0x417142
call fcn.00416040
test eax, eax
je 0x41719c
mov ecx, dword [esi + 0x102c]
mov dx, word [0x6764a8]
mov word [esi + ecx + 0x2c], dx
mov ecx, 2
add dword [esi + 0x102c], ecx
mov eax, dword [esi + 0x102c]
test eax, eax
jle 0x4171b2
cmp dword [esi + 0x1034], ecx
jne 0x4171b2
mov ecx, dword [esi + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 0x38]
push edi
push eax
lea eax, [esi + 0x2c]
push eax
call edx
xor ecx, ecx
cmp dword [esi + 0x102c], eax
mov dword [esi + 0x102c], 0
sete cl
mov eax, ecx
test eax, eax
jne 0x4171b2
xor edi, edi
cmp dword [esi + 4], edi
je 0x4171ab
mov dword [esi + 4], edi
call ebp
mov dword [esi + 0xc], eax
mov dword [ebx + 8], 2
mov eax, 4
cmp dword [esi + 4], eax
je 0x4171c4
mov dword [esi + 4], eax
call ebp
mov dword [esi + 0xc], eax
mov eax, edi
pop edi
pop ebp
pop esi
pop ebx
add esp, 0xc
ret 4
pop edi
pop ebp
pop esi
xor eax, eax
pop ebx
add esp, 0xc
ret 4
Function at 0x417830
Capabilities:
Resolve dns

Disassembly:
push esi
push edi
mov esi, ecx
mov edi, eax
call fcn.004178d0
test edi, edi
je 0x4178c3
push 0x210
call fcn.005c052e
add esp, 4
mov dword [esi + 0x14], eax
test eax, eax
je 0x4178c3
push 0x210
push edi
push eax
mov dword [esi + 0x10], 0x210
call fcn.005bfdd0
mov dword [esi + 0x28], 0
mov esi, dword [esi + 0x14]
add esp, 0xc
cmp dword [esi + 0x88], 0
mov edi, esi
je 0x417893
cmp byte [esi + 0x8c], 0
lea eax, [esi + 0x8c]
je 0x417893
mov edi, eax
push edi
call sub.WS2_32.dll_inet_addr
mov dword [esi + 0x84], eax
cmp eax, 0xffffffff
jne 0x4178bb
push edi
call sub.WS2_32.dll_gethostbyname
test eax, eax
je 0x4178c3
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx]
mov dword [esi + 0x84], edx
pop edi
mov eax, 1
pop esi
ret
pop edi
xor eax, eax
pop esi
ret

Function at 0x417e90
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x60d0e1
mov eax, dword fs:[0]
push eax
push esi
mov eax, dword [0x698b9c]
xor eax, esp
push eax
lea eax, [esp + 8]
mov dword fs:[0], eax
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esi + 4], vtable.TPObject.0
mov dword [esi + 8], eax
mov dword [esp + 0x10], eax
mov dword [esi], vtable.CConnection.0
mov dword [esi + 4], vtable.CConnection.1.0
mov dword [esi + 0xc], eax
mov edx, vtable.CProperty.0
mov dword [esi + 0x10], edx
mov ecx, vtable.TArray_class_PropItem___10__class_TDefaultAllocator_.0
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov byte [esp + 0x10], 2
mov ecx, 1
mov dword [esi + 0x38], ecx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
cmp dword [0x69aaa4], ecx
jg 0x417f2d
push 0x677498
push 0x12
push str.....mttpConnection.cpp
push ecx
call fcn.00401310
add esp, 0x10
mov eax, esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
pop ecx
pop esi
add esp, 0xc
ret 4
Function at 0x418490
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
mov esi, ecx
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
push edi
call edx
mov ebx, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
mov ecx, esi
call edx
cmp dword [0x69db60], 0
je 0x418524
push 0
push 1
push 2
call sub.WS2_32.dll_socket
mov dword [esi + 0x44], eax
cmp eax, 0xffffffff
je 0x418524
mov edi, dword [ebp + 8]
test edi, edi
jle 0x4184ee
lea ecx, [esp + 0x10]
push ecx
push 0x8004667e
push eax
mov dword [esp + 0x1c], 1
call sub.WS2_32.dll_ioctlsocket
mov edx, dword [esi + 0xc]
mov dword [esi + 0x48], edi
cmp dword [edx + 0x10], 0x210
jne 0x41852f
cmp dword [ebx + 0x88], 0
je 0x41852f
cmp byte [ebx + 0x8c], 0
je 0x41852f
push esi
mov eax, ebx
call fcn.00418d00
test eax, eax
jne 0x41854e
mov eax, dword [esi]
mov edx, dword [eax + 0x40]
mov ecx, esi
call edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx + 0x80]
mov ecx, dword [ebx + 0x84]
push eax
push ecx
mov ecx, edi
mov edi, esi
call fcn.00418b70
test eax, eax
je 0x4185ec
call fcn.004182d0
test eax, eax
jne 0x418584
cmp dword [0x69aaa4], 3
jg 0x418579
push str.Cant_create_ssl...
push 0x84
push str.....mttpSSLConnection.cpp
push 3
call fcn.00401310
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [esi + 0x4c]
mov edx, dword [esi + 0x44]
push ebx
push 0
mov dword [ecx], edx
mov eax, dword [esi + 0x4c]
push 0x37
push eax
call fcn.0040ad70
add esp, 0x10
cmp dword [esi + 0x50], 0
je 0x4185b2
mov edi, esi
call fcn.00418630
test eax, eax
je 0x418524
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x418600
mov edx, dword [ebp + 0x10]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [ebp + 8]
push edx
mov edx, dword [esi + 0x4c]
push ecx
push 0
push edx
call eax
add esp, 0x14
test eax, eax
je 0x418600
cmp dword [esi + 0x3c], 0
je 0x4185e5
mov eax, dword [esi + 0xc]
mov dword [eax + 8], 5
cmp dword [esp + 0x14], 0
je 0x418622
mov edx, dword [esi]
mov eax, dword [edx + 0x40]
mov ecx, esi
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [0x69aaa4], 1
jg 0x418622
push str.Connected_with_using_ssl.
push 0xb1
push str.....mttpSSLConnection.cpp
push 1
call fcn.00401310
add esp, 0x10
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x418b70
Capabilities:
Connect socket
Get socket status

Disassembly:
sub esp, 0x12c
mov eax, dword [0x698b9c]
xor eax, esp
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x130]
push ebx
mov ebx, dword [esp + 0x138]
push esi
push ebx
mov esi, ecx
mov dword [esp + 0x124], eax
call sub.WS2_32.dll_htons
cmp dword [0x69aaa4], 1
mov ecx, 2
mov word [esp + 0x11e], ax
mov word [esp + 0x11c], cx
jg 0x418be6
mov edx, dword [esp + 0x120]
push ebx
push edx
call sub.WS2_32.dll_inet_ntoa
push eax
push str.Socket_connecting_to__s:_d_...
push 0x4a
push str.....mttpTcpConnection.cpp
push 1
call fcn.00401310
add esp, 0x18
mov ecx, dword [edi + 0x44]
push 0x10
lea eax, [esp + 0x120]
push eax
push ecx
call sub.WS2_32.dll_connect
test eax, eax
je 0x418cbb
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
jne 0x418c92
test esi, esi
jle 0x418c92
mov eax, 0x10624dd3
imul esi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [edi + 0x44]
mov dword [esp + 8], eax
imul eax, eax, 0x3e8
sub esi, eax
lea eax, [esp + 8]
imul esi, esi, 0x3e8
push eax
push 0
lea ecx, [esp + 0x18]
push ecx
push 0
push 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], 1
call sub.WS2_32.dll_select
test eax, eax
je 0x418c69
cmp eax, 0xffffffff
jne 0x418cbb
mov eax, dword [edi + 0x44]
cmp eax, 0xffffffff
je 0x418c7e
push eax
call sub.WS2_32.dll_closesocket
mov dword [edi + 0x44], 0xffffffff
cmp dword [edi + 0x3c], 0
je 0x418c8e
mov edx, dword [edi + 0xc]
mov dword [edx + 8], 5
xor eax, eax
jmp 0x418cdf
mov eax, dword [edi + 0x44]
cmp eax, 0xffffffff
je 0x418ca7
push eax
call sub.WS2_32.dll_closesocket
mov dword [edi + 0x44], 0xffffffff
cmp dword [edi + 0x3c], 0
je 0x418cb7
mov eax, dword [edi + 0xc]
mov dword [eax + 8], 5
xor eax, eax
jmp 0x418cdf
cmp dword [0x69aaa4], 1
jg 0x418cda
push str.Connected.
push 0x74
push str.....mttpTcpConnection.cpp
push 1
call fcn.00401310
add esp, 0x10
mov eax, 1
mov ecx, dword [esp + 0x12c]
pop esi
pop ebx
xor ecx, esp
call fcn.005bfcb8
add esp, 0x12c
ret 8