joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1001c930
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 0xc]
test edx, edx
jne 0x1001c93e
xor eax, eax
pop ebp
ret
mov eax, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0x10]
not eax
cmp esi, 8
jb 0x1001ca13
push edi
mov edi, esi
shr edi, 3
movzx ecx, byte [edx]
sub esi, 8
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 1]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 2]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 3]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 4]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 5]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 6]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
movzx ecx, byte [edx + 7]
add edx, 8
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
dec edi
jne 0x1001c956
pop edi
test esi, esi
je 0x1001ca32
movzx ecx, byte [edx]
lea edx, [edx + 1]
xor ecx, eax
shr eax, 8
and ecx, 0xff
xor eax, dword [ecx*4 + 0x10069060]
dec esi
jne 0x1001ca17
not eax
pop esi
pop ebp
ret

Function at 0x1001dad0
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebp
mov ebp, esp
mov dl, byte [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, dword [edi + 8]
mov ecx, esi
and ecx, 0xfffd
or ecx, 2
mov eax, ecx
xor eax, 1
imul eax, ecx
mov ecx, dword [edi]
shr eax, 8
xor dl, al
movsx eax, dl
xor eax, ecx
shr ecx, 8
and eax, 0xff
mov eax, dword [eax*4 + 0x10069060]
xor eax, ecx
mov dword [edi], eax
movzx eax, al
add eax, dword [edi + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [edi + 4], eax
shr eax, 0x18
xor eax, esi
shr esi, 8
and eax, 0xff
xor esi, dword [eax*4 + 0x10069060]
mov al, dl
mov dword [edi + 8], esi
pop edi
pop esi
pop ebp
ret
Function at 0x100457e0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100654a3
mov eax, dword fs:[0]
push eax
push ecx
push esi
mov eax, dword [str.D__na_l_n]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 8], 0xffffffff
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x30], 7
mov dword [esi + 0x2c], 0
mov word [esi + 0x1c], ax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
lea ecx, [esi + 0x48]
mov dword [esi], 0x1006fa14
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], eax
mov dword [ebp - 4], eax
mov word [ecx], ax
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x64], 0xffffffff
push eax
push 0x10066594
mov byte [ebp - 4], 1
mov dword [esi + 0x60], 4
mov byte [esi + 0x40], al
mov dword [esi + 0x44], eax
call fcn.10007a50
mov dword [esi + 0x68], 0
mov eax, esi
mov dword [esi + 0x64], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x100458b0
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100654d3
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [str.D__na_l_n]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 8], 0xffffffff
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x30], 7
mov dword [esi + 0x2c], 0
mov word [esi + 0x1c], ax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 1
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi], 0x1006f974
xor ecx, ecx
mov dword [esi + 0x48], 0xffffffff
mov dword [esi + 0x44], 0xffffffff
mov dword [esi + 0x40], 0x1006f960
mov dword [esi + 0x64], 7
mov dword [esi + 0x60], 0
mov dword [ebp - 4], eax
lea eax, [esi + 0x40]
mov word [eax + 0x10], cx
mov dword [eax + 0x3c], 7
mov dword [eax + 0x38], ecx
mov word [eax + 0x28], cx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x44], eax
mov dword [eax + 0x40], eax
mov edi, dword [ebp + 8]
mov dword [esi + 0x18], ecx
mov dword [esi + 0x14], ecx
mov byte [ebp - 4], 1
cmp word [edi], cx
jne 0x10045972
xor eax, eax
jmp 0x1004597b
push edi
call fcn.1004c3e4
add esp, 4
push eax
push edi
lea ecx, [esi + 0x1c]
call fcn.10007a50
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x10045a00
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100654f8
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [str.D__na_l_n]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 8], 0xffffffff
xor eax, eax
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0x30], 7
mov dword [esi + 0x2c], 0
mov word [esi + 0x1c], ax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 4
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov ebx, dword [ebp + 8]
mov dword [esi], 0x1006f9b4
mov dword [ebp - 4], eax
cmp word [ebx], ax
je 0x10045a80
push ebx
call fcn.1004c3e4
add esp, 4
push eax
push ebx
lea ecx, [esi + 0x1c]
call fcn.10007a50
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x1005be97
Capabilities:
Packed with generic packer

Disassembly:
test eax, esi
mov eax, dword [0x82c3e9]
add byte [ebx + 0x4c78307], cl
mov dword [ebp - 0x76079410], edi
or dword [ebp + 0x71d7c67], ecx
sar bh, 0x8d
test dword [edi*8 + 0x950ffff], ebp
cmp eax, edi
add esi, dword [eax + 0x67]
jl 0x1005bede
add byte [eax], al
xchg edi, eax
or byte [ecx], al
or al, 0xe9
test dword [ebx - 0x387cf854], ebp
push 0xffffffffffffffdc
enter 0xffffffffffffbc89, 0x11
pop es
mov dword [ebp - 0x18], edi
Function at 0x4160c4
Capabilities:
Terminate process

Disassembly:
push ebp
nop
mov ebp, esp
nop
push esi
nop
xor esi, esi
nop
inc esi
nop
cmp dword [0x412528], esi
nop
push edi
nop
jne 0x4160ed
push dword [ebp + 8]
nop
call dword [sym.imp.kernel32.dll_GetCurrentProcess]
push eax
nop
call dword [sym.imp.kernel32.dll_TerminateProcess]
cmp dword [ebp + 0xc], 0
nop
mov al, byte [ebp + 0x10]
nop
mov dword [0x412524], esi
nop
mov byte [0x412520], al
nop
jne 0x41616a
mov ecx, dword [0x41254c]
nop
test ecx, ecx
nop
je 0x416143
mov eax, dword [0x412548]
nop
sub eax, 4
nop
cmp eax, ecx
nop
jmp 0x41613b
mov eax, dword [eax]
nop
test eax, eax
nop
je 0x41612a
call eax
mov eax, dword [0x412548]
nop
sub eax, 4
nop
cmp eax, dword [0x41254c]
nop
mov dword [0x412548], eax
nop
jae 0x416120
mov eax, 0x4040b4
nop
mov esi, 0x4040b8
nop
cmp eax, esi
nop
mov edi, eax
nop
jae 0x41616a
mov eax, dword [edi]
nop
test eax, eax
nop
je 0x416161
call eax
add edi, 4
nop
cmp edi, esi
nop
jb 0x416157
mov eax, 0x4040bc
nop
mov esi, 0x4040c0
nop
cmp eax, esi
nop
mov edi, eax
nop
jae 0x416191
mov eax, dword [edi]
nop
test eax, eax
nop
je 0x416188
call eax
add edi, 4
nop
cmp edi, esi
nop
jb 0x41617e
cmp dword [ebp + 0x10], 0
nop
pop edi
nop
pop esi
nop
jne 0x4161b2
push dword [ebp + 8]
nop
mov dword [0x412528], 1
nop
call fcn.0041608d
pop ecx
nop
pop ebp
nop
ret

Function at 0x4161ca
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
nop
mov ebp, esp
nop
sub esp, 0x10
nop
push ebx
nop
xor ebx, ebx
nop
cmp dword [0x41252c], ebx
nop
push esi
nop
push edi
nop
jne 0x416270
push str.USER32.DLL
nop
call dword [sym.imp.kernel32.dll_LoadLibraryA]
mov edi, eax
nop
cmp edi, ebx
nop
je 0x4162b9
mov esi, dword [sym.imp.kernel32.dll_GetProcAddress]
nop
push str.MessageBoxA
nop
push edi
nop
call esi
test eax, eax
nop
mov dword [0x41252c], eax
nop
je 0x4162b9
push str.GetActiveWindow
nop
push edi
nop
call esi
push str.GetLastActivePopup
nop
push edi
nop
mov dword [0x412530], eax
nop
call esi
cmp dword [0x4124e8], 2
nop
mov dword [0x412534], eax
nop
jne 0x416270
push str.GetUserObjectInformationA
nop
push edi
nop
call esi
test eax, eax
nop
mov dword [0x41253c], eax
nop
je 0x416270
push str.GetProcessWindowStation
nop
push edi
nop
call esi
mov dword [0x412538], eax
nop
mov eax, dword [0x412538]
nop
test eax, eax
nop
je 0x4162c5
call eax
test eax, eax
nop
je 0x4162a8
lea ecx, [ebp - 4]
nop
push ecx
nop
push 0xc
nop
lea ecx, [ebp - 0x10]
nop
push ecx
nop
push 1
nop
push eax
nop
call dword [0x41253c]
test eax, eax
nop
je 0x4162a8
test byte [ebp - 8], 1
nop
jne 0x4162c5
cmp dword [0x4124f4], 4
nop
jb 0x4162be
or byte [ebp + 0x12], 0x20
nop
jmp 0x4162ec
xor eax, eax
nop
jmp 0x416300
or byte [ebp + 0x12], 4
nop
jmp 0x4162ec
mov eax, dword [0x412530]
nop
test eax, eax
nop
je 0x4162ec
call eax
mov ebx, eax
nop
test ebx, ebx
nop
je 0x4162ec
mov eax, dword [0x412534]
nop
test eax, eax
nop
je 0x4162ec
push ebx
nop
call eax
mov ebx, eax
nop
push dword [ebp + 0x10]
nop
push dword [ebp + 0xc]
nop
push dword [ebp + 8]
nop
push ebx
nop
call dword [0x41252c]
pop edi
nop
pop esi
nop
pop ebx
nop
leave
nop
ret
Function at 0x2161058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.021611a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0x216107e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x216106a
add dl, dl
jne 0x2161089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x21610dc
xor eax, eax
add dl, dl
jne 0x2161096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x216117d
add dl, dl
jne 0x21610a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x21610b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x21610bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x21610c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x21610d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x2161075
mov eax, 1
add dl, dl
jne 0x21610ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x21610f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x21610e1
sub eax, ebx
mov ebx, 1
jne 0x2161128
mov ecx, 1
add dl, dl
jne 0x216110e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x2161119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x2161105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x2161075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x216113f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x216114a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x2161136
cmp eax, 0x7d00
jae 0x216116d
cmp eax, 0x500
jb 0x2161168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x2161075
cmp eax, 0x7f
ja 0x2161170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x2161075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x216119e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0x2161075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x10002c50
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
xor eax, eax
jmp 0x10002c60
movzx edx, byte [eax + str.cw]
mov byte [edx + ecx + 4], al
inc eax
cmp eax, 0x100
jl 0x10002c60
push ebx
xor eax, eax
lea ebx, [ecx + 0x504]
push esi
add ecx, 4
mov dword [ebp - 8], eax
push edi
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ecx
lea ebx, [ebx]
movzx edi, byte [eax + str.cw]
mov eax, edi
mov ecx, edi
and al, 0x80
movzx esi, al
neg esi
lea eax, [edi + edi]
sbb esi, esi
shl ecx, 8
and esi, 0x1b
xor esi, eax
and esi, 0xff
mov edx, esi
xor edx, edi
mov eax, edx
shl eax, 8
or eax, edi
shl eax, 8
or eax, edi
shl eax, 8
or eax, esi
mov dword [ebx - 0x400], eax
mov eax, ecx
or ecx, esi
or eax, edi
shl eax, 8
or eax, esi
shl ecx, 8
or ecx, edx
shl esi, 8
or esi, edx
shl eax, 8
or eax, edx
shl ecx, 8
mov dword [ebx], eax
or ecx, edi
mov eax, dword [ebp - 8]
shl esi, 8
or esi, edi
mov dword [ebx + 0x400], ecx
mov ecx, dword [ebp - 0x10]
shl esi, 8
or esi, edi
mov dword [ebx + 0x800], esi
movzx edi, byte [ecx + eax]
mov eax, edi
and al, 0x80
movzx esi, al
neg esi
lea eax, [edi + edi]
sbb esi, esi
and esi, 0x1b
xor esi, eax
and esi, 0xff
mov eax, esi
and al, 0x80
movzx ecx, al
neg ecx
lea eax, [esi + esi]
sbb ecx, ecx
and ecx, 0x1b
xor ecx, eax
and ecx, 0xff
mov eax, ecx
and al, 0x80
movzx edx, al
neg edx
lea eax, [ecx + ecx]
sbb edx, edx
and edx, 0x1b
xor edx, eax
and edx, 0xff
mov dword [ebp - 4], edx
mov ebx, edx
mov eax, dword [ebp - 4]
xor edx, esi
xor ebx, edi
xor edx, edi
xor eax, ecx
mov dword [ebp - 4], eax
mov ecx, eax
xor ecx, edi
mov edi, eax
xor edi, esi
mov eax, edx
mov esi, dword [ebp - 0xc]
shl eax, 8
or eax, ecx
shl eax, 8
or eax, ebx
shl eax, 8
or eax, edi
mov dword [esi + 0xc00], eax
mov eax, ecx
shl eax, 8
or eax, ebx
shl eax, 8
or eax, edi
shl eax, 8
or eax, edx
mov dword [esi + 0x1000], eax
mov eax, ebx
shl eax, 8
or eax, edi
shl edi, 8
or edi, edx
shl eax, 8
shl edi, 8
or eax, edx
or edi, ecx
shl eax, 8
shl edi, 8
or eax, ecx
or edi, ebx
mov dword [esi + 0x1400], eax
mov eax, dword [ebp - 8]
mov ebx, esi
inc eax
mov dword [ebp - 8], eax
mov dword [ebx + 0x1800], edi
add ebx, 4
mov dword [ebp - 0xc], ebx
cmp eax, 0x100
jl 0x10002c90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x10002e00
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ecx]
push esi
mov dword [ecx + eax*4 + 0x2114], 5
lea esi, [ecx + eax*4]
xor ecx, ecx
jmp 0x10002e20
mov eax, dword [edx]
lea edx, [edx + 4]
mov dword [esi + ecx*4 + 0x2124], eax
inc ecx
cmp ecx, 4
jl 0x10002e20
cmp ecx, 0x2c
jge 0x10002ebe
push ebx
lea ebx, [esi + 0x2114]
push edi
lea ebx, [ebx + ecx*4]
mov edx, dword [ebx + 0xc]
mov eax, ecx
and eax, reloc.WS2_32.dll_closesocket
jne 0x10002eac
movzx eax, dl
movzx edi, byte [eax + str.cw]
mov eax, edx
shr eax, 0x18
shl edi, 8
movzx eax, byte [eax + str.cw]
or edi, eax
mov eax, edx
shr eax, 0x10
and eax, 0xff
shr edx, 8
and edx, 0xff
shl edi, 8
movzx eax, byte [eax + str.cw]
movzx esi, byte [edx + str.cw]
or edi, eax
mov eax, ecx
shl edi, 8
cdq
and edx, 3
add eax, edx
sar eax, 2
movzx edx, byte [eax + 0x10054c00]
xor edx, esi
or edx, edi
mov eax, dword [ebx]
inc ecx
xor eax, edx
mov dword [ebx + 0x10], eax
add ebx, 4
cmp ecx, 0x2c
jl 0x10002e46
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x10003830
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x804
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 8]
lea eax, [ebp - 0x804]
push 0xffffffffffffffff
push 0x800
push eax
call fcn.10039c05
add esp, 0x14
mov esi, eax
lea eax, [ebp - 0x804]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test esi, esi
pop esi
jns 0x10003880
push str.MM_OutDebugString_Buffer_Overflow_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100370be
mov esp, ebp
pop ebp
ret

Function at 0x10005160
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x198
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
lea eax, [ebp - 0x198]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x100051b0
mov eax, dword [ebp - 0x198]
cmp al, 2
jne 0x100051aa
shr eax, 8
cmp al, 2
jne 0x100051aa
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100370be
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [ebp - 4]
mov eax, 2
xor ecx, ebp
call fcn.100370be
mov esp, ebp
pop ebp
ret
Function at 0x100052b0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 4], ecx
xor ebx, ebx
mov edi, ecx
jmp 0x100052c6
mov edi, eax
test esi, esi
jne 0x10005418
mov dword [ebp - 8], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, edx
shr eax, 6
mov dword [ebp - 0x14], eax
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov ecx, edi
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
push eax
sub esp, 8
call fcn.10005b80
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10005418
mov eax, dword [ebp - 0xc]
cmp eax, 0xffffffff
je 0x1000540c
test eax, eax
jne 0x100053a0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov eax, 0x10624dd3
mul esi
mov eax, 0x10624dd3
mov edi, edx
shr edi, 6
imul ecx, edi, 0x3e8
sub edi, dword [ebp - 0x14]
sub esi, ecx
imul ecx, esi, 0x3e8
sub ecx, dword [ebp - 0x10]
imul ecx
imul eax, edi, 0x3e8
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add ecx, eax
cmp ecx, 0xa
jg 0x100053a0
inc ebx
cmp ebx, 2
jle 0x100053a2
cmp ebx, 0xa
jge 0x10005392
lea ecx, [ebx - 1]
mov eax, 1
shl eax, cl
test eax, eax
je 0x100053a2
jns 0x10005397
push 0x2726
call dword [sym.imp.WS2_32.dll_WSASetLastError]
jmp 0x100053a2
mov eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100053a2
xor ebx, ebx
mov ecx, dword [ebp - 4]
lea edx, [ebp - 8]
call fcn.10006c60
mov edi, dword [ebp - 4]
mov esi, eax
test esi, esi
jne 0x10005418
cmp dword [ebp - 8], 0
jne 0x100052c6
mov eax, edi
test eax, eax
je 0x100052c4
cmp dword [eax], 0xbab1e
jne 0x100052c4
mov ecx, dword [eax + 0x14]
cmp dword [ecx + 0xc], 0
je 0x100052c6
mov edx, dword [ecx]
push 0
mov edi, dword [edx]
mov dword [ebp - 0x14], edi
call fcn.100162f0
add esp, 4
test edi, edi
mov edi, dword [ebp - 4]
je 0x100052c6
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x38
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
cmp esi, 3
mov eax, 0x2b
mov ecx, 0x1b
pop esi
cmove eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x1000be20
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x394
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push str.no_proxy
mov dword [ebp - 0x394], ecx
xor esi, esi
call fcn.1004767d
mov edi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
add esp, 4
mov byte [ebp - 0x188], 0
test eax, eax
je 0x1000be88
push 0x104
lea ecx, [ebp - 0x188]
push ecx
push eax
call edi
cmp byte [ebp - 0x188], 0
je 0x1000be88
lea eax, [ebp - 0x188]
push eax
call dword [0x1005f670]
add esp, 4
mov ebx, eax
jmp 0x1000be8a
xor ebx, ebx
test ebx, ebx
jne 0x1000bed2
push str.NO_PROXY
call fcn.1004767d
add esp, 4
mov byte [ebp - 0x28c], bl
test eax, eax
je 0x1000bed0
push 0x104
lea ecx, [ebp - 0x28c]
push ecx
push eax
call edi
cmp byte [ebp - 0x28c], bl
je 0x1000bed0
lea eax, [ebp - 0x28c]
push eax
call dword [0x1005f670]
add esp, 4
mov ebx, eax
jmp 0x1000bed2
xor ebx, ebx
mov edi, dword [ebp - 0x394]
mov edx, ebx
mov ecx, dword [edi + 0x98]
call fcn.1000bce0
test al, al
jne 0x1000bfd8
mov eax, dword [edi + 0x1ec]
lea esi, [ebp - 0x84]
mov edi, dword [eax]
mov al, byte [edi]
test al, al
je 0x1000bf19
movsx eax, al
push eax
call fcn.10040af7
mov byte [esi], al
lea edi, [edi + 1]
mov al, byte [edi]
add esp, 4
inc esi
test al, al
jne 0x1000bf01
mov eax, dword [str._proxy]
mov dword [esi], eax
mov ax, word [0x10056270]
mov word [esi + 4], ax
mov al, byte [0x10056272]
mov byte [esi + 6], al
lea eax, [ebp - 0x84]
push eax
call fcn.1004767d
add esp, 4
mov byte [ebp - 0x390], 0
test eax, eax
je 0x1000bf7c
push 0x104
lea ecx, [ebp - 0x390]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
cmp byte [ebp - 0x390], 0
je 0x1000bf7c
lea eax, [ebp - 0x390]
push eax
call dword [0x1005f670]
add esp, 4
mov esi, eax
jmp 0x1000bf7e
xor esi, esi
test esi, esi
jne 0x1000bfd8
lea edx, [ebp - 0x84]
mov ecx, str.http_proxy
call fcn.1002cbd0
test eax, eax
jne 0x1000bfbc
lea edx, [ebp - 0x84]
push 0x80
mov ecx, edx
call fcn.1002ce60
add esp, 4
lea ecx, [ebp - 0x84]
call fcn.1002ec10
mov esi, eax
test esi, esi
jne 0x1000bfd8
mov ecx, str.all_proxy
call fcn.1002ec10
mov esi, eax
test esi, esi
jne 0x1000bfd8
mov ecx, str.ALL_PROXY
call fcn.1002ec10
mov esi, eax
test ebx, ebx
je 0x1000bfe6
push ebx
call dword [0x1005f678]
add esp, 4
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100370be
mov esp, ebp
pop ebp
ret
Function at 0x1000cca0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
mov dword [ebp - 8], 0
xor eax, eax
mov dword [ebp - 0xc], esi
push edi
mov ecx, 1
mov ebx, edx
mov edi, dword [esi + 0x1c8]
mov edx, 0x493e0
test edi, edi
mov dword [ebp - 4], edx
cmovg eax, ecx
mov ecx, dword [esi + 0x1cc]
test ecx, ecx
jle 0x1000ccde
or eax, 2
dec eax
je 0x1000ccf8
dec eax
je 0x1000ccf3
dec eax
jne 0x1000ccfb
cmp edi, ecx
mov edx, ecx
cmovl edx, edi
mov dword [ebp - 4], edx
jmp 0x1000ccfb
mov dword [ebp - 4], ecx
jmp 0x1000ccfb
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov esi, dword [esi + 0x4a8]
mov eax, 0x10624dd3
mul ecx
mov edi, edx
mov edx, dword [ebp - 0xc]
shr edi, 6
imul eax, edi, 0x3e8
sub esi, edi
sub ecx, eax
mov eax, 0x10624dd3
imul ecx, ecx, 0x3e8
sub ecx, dword [edx + 0x4ac]
imul ecx
imul eax, esi, 0x3e8
mov esi, dword [ebp - 4]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sub eax, ecx
add esi, eax
mov eax, 0xffffffff
cmove esi, eax
cmp byte [ebx + 0x1c1], 0
je 0x1000cd6c
mov ecx, dword [ebp + 8]
xor eax, eax
mov byte [ecx], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0xc]
lea eax, [ebx + 0x90]
push eax
mov ecx, edi
call fcn.1000b180
mov eax, dword [ebx + 0xa8]
add esp, 4
test eax, eax
je 0x1000ce2a
cmp byte [eax], 0
je 0x1000ce2a
lea eax, [ebx + 0xa0]
mov ecx, edi
push eax
call fcn.1000b180
add esp, 4
mov dword [ebp - 4], 0
test esi, esi
js 0x1000ce95
mov edx, dword [ebx + 0xa8]
lea eax, [ebp - 4]
push eax
push dword [ebx + 0xb0]
mov ecx, ebx
call fcn.1000f890
add esp, 8
cmp eax, 1
jne 0x1000cdec
mov eax, dword [ebp + 8]
mov byte [eax], 1
mov eax, dword [ebp - 4]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0xfffffffe
je 0x1000ce95
cmp dword [ebp - 4], 0
jne 0x1000ce9c
push dword [ebx + 0xac]
push str.Couldnt_resolve_proxy__s
push edi
call fcn.10010d80
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [ebp - 8], 5
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xb4]
mov dword [ebx + 0xb0], eax
mov dword [ebp - 4], 0
test esi, esi
js 0x1000ce95
mov edx, dword [ebx + 0x98]
lea ecx, [ebp - 4]
push ecx
push eax
mov ecx, ebx
call fcn.1000f890
add esp, 8
cmp eax, 1
je 0x1000cdd6
cmp eax, 0xfffffffe
je 0x1000ce95
cmp dword [ebp - 4], 0
jne 0x1000ce9c
push dword [ebx + 0x9c]
push str.Couldnt_resolve_host__s
push edi
call fcn.10010d80
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [ebp - 8], 6
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 8], 0x1c
mov eax, dword [ebp - 4]
pop edi
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 8]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret