joyce8/EMBER2024-capa huggingface dataset:
Function at 0x447400
Capabilities:
Convert ip address from string

Disassembly:
sub esp, 0x14
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x10], eax
push ebx
mov ebx, dword [esp + 0x20]
xorps xmm0, xmm0
push esi
mov esi, dword [esp + 0x28]
mov eax, 2
push edi
push dword [esp + 0x30]
mov edi, dword [esp + 0x28]
movups xmmword [esp + 0x10], xmm0
mov word [esp + 0x10], ax
call dword [sym.imp.WSOCK32.dll_htons]
mov word [esp + 0xe], ax
test esi, esi
je 0x44748c
cmp byte [esi], 0
je 0x44748c
lea eax, [esp + 0x10]
push eax
push esi
push 2
call dword [sym.imp.WS2_32.dll_inet_pton]
test eax, eax
jg 0x447498
call fcn.00464760
mov dword [eax + 0xc], 3
mov dword [eax + 0x10], 0
xor eax, eax
mov dword [edi], 0
pop edi
pop esi
mov dword [ebx], 0
pop ebx
mov ecx, dword [esp + 0x10]
xor ecx, esp
call fcn.004daa4c
add esp, 0x14
ret
push 0
call dword [sym.imp.WSOCK32.dll_htonl]
mov dword [esp + 0x10], eax
push 0x11
call fcn.00470460
movups xmm0, xmmword [esp + 0x10]
mov ecx, dword [esp + 0x20]
add esp, 4
movups xmmword [eax], xmm0
mov dword [edi], eax
mov eax, 1
pop edi
pop esi
mov dword [ebx], 0x10
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x14
ret

Function at 0x4474d0
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x194
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x190], eax
push esi
push 0x7eae30
xor esi, esi
call fcn.0043a0b0
mov eax, dword [0x7eae4c]
add esp, 4
inc eax
mov dword [0x7eae4c], eax
cmp eax, 1
jne 0x447516
lea eax, [esp + 4]
push eax
push 0x101
call dword [sym.imp.WSOCK32.dll_WSAStartup]
mov esi, eax
push 0x7eae30
call fcn.0043a0b0
mov ecx, dword [esp + 0x198]
add esp, 4
mov eax, esi
pop esi
xor ecx, esp
call fcn.004daa4c
add esp, 0x194
ret

Function at 0x447580
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
push esi
call fcn.0043a0b0
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0xc]
test eax, eax
jl 0x4475cc
mov ecx, dword [esp + 0x1c]
jg 0x44759d
test ecx, ecx
jb 0x4475cc
push eax
push ecx
push ebp
call fcn.00447750
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4475ca
call fcn.00464760
mov dword [eax + 0x10], esi
or esi, 0xffffffff
mov dword [eax + 0xc], 2
call fcn.0043a0b0
mov eax, esi
pop esi
pop ebp
ret
js 0x447644
mov eax, dword [esp + 0x18]
push ebx
xor ebx, ebx
push edi
test eax, eax
je 0x447600
mov ecx, eax
and ecx, 1
mov edx, ecx
or edx, 2
and al, 2
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov ebx, edx
mov eax, ecx
or ebx, 4
and al, 4
cmove ebx, edx
test cl, 8
je 0x447600
or ebx, 8
nop
push ebx
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebp
call dword [sym.imp.WSOCK32.dll_recv]
mov esi, eax
test esi, esi
jle 0x44761a
xor edi, edi
jmp 0x447622
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00447d40
add esp, 4
cmp esi, 0xffffffff
jne 0x447642
cmp edi, 0x2714
jne 0x447642
call fcn.0046f9b0
test ax, ax
je 0x447600
pop edi
pop ebx
call fcn.0043a0b0
mov eax, esi
pop esi
pop ebp
ret
Function at 0x447650
Capabilities:
Convert ip address from string
Resolve dns

Disassembly:
sub esp, 0x44
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x40], eax
push ebx
push esi
mov esi, dword [esp + 0x50]
xor ebx, ebx
push edi
xor edi, edi
test esi, esi
je 0x44773a
cmp byte [esi], bl
je 0x44773a
push ebp
mov ebp, dword [esp + 0x5c]
cmp ebp, 2
jne 0x4476c6
lea eax, [esp + 0x14]
push eax
push esi
push ebp
call dword [sym.imp.WS2_32.dll_inet_pton]
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0x10], ecx
test eax, eax
jle 0x4476c2
push 0x16
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x1c]
push eax
push ebp
call sub.WS2_32.dll_inet_ntop
mov esi, eax
push esi
call fcn.004c8e20
mov ecx, dword [esp + 0x14]
add esp, 4
mov edi, eax
test ecx, ecx
jne 0x44771c
mov dword [esp + 0x10], ebx
call fcn.0043a0b0
lea eax, [esp + 0x10]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x1c]
push eax
push 0
movups xmmword [esp + 0x24], xmm0
push esi
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x2c], ebp
call dword [sym.imp.WS2_32.dll_getaddrinfo]
mov ebx, eax
test ebx, ebx
jne 0x447717
mov ecx, dword [esp + 0x10]
push dword [ecx + 0x10]
push dword [ecx + 0x18]
call fcn.00446e80
add esp, 8
mov edi, eax
push dword [esp + 0x10]
call dword [sym.imp.WS2_32.dll_freeaddrinfo]
call fcn.0043a0b0
push ebx
call fcn.00447d40
add esp, 4
mov eax, edi
pop ebp
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004daa4c
add esp, 0x44
ret
mov ecx, dword [esp + 0x4c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x44
ret
Function at 0x447750
Capabilities:
Get socket status

Disassembly:
sub esp, 0x118
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
mov ebx, dword [esp + 0x124]
push ebp
mov ebp, dword [esp + 0x12c]
push esi
push edi
push ebp
push ebx
call fcn.004ca770
mov esi, dword [esp + 0x134]
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
lea edi, [esi + 1]
test ebp, ebp
jg 0x4477ae
jl 0x44779c
test ebx, ebx
jae 0x4477ae
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
jmp 0x4477d4
push 0
push 0x3e8
push ebp
push ebx
call fcn.004dafb0
mov dword [esp + 0x10], eax
mov ecx, ebx
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x24], esi
push eax
push 0
push 0
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], 1
push eax
push edi
call dword [sym.imp.WSOCK32.dll_select]
mov esi, eax
test esi, esi
js 0x4477ff
xor edi, edi
jmp 0x447807
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00447d40
add esp, 4
cmp esi, 0xffffffff
jne 0x44781f
cmp edi, 0x2714
jne 0x447871
jmp 0x447823
test esi, esi
jne 0x44786f
lea eax, [esp + 0x18]
push eax
push ebp
push ebx
call fcn.004ca7c0
mov ebx, eax
mov ebp, edx
mov ecx, ebx
add esp, 0xc
or ecx, ebp
je 0x447854
call fcn.0046f9b0
mov esi, dword [esp + 0x12c]
lea edi, [esi + 1]
test ax, ax
je 0x447792
xor eax, eax
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x118
ret
jns 0x447876
or eax, 0xffffffff
jmp 0x447856
test esi, esi
jle 0x447854
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x130]
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x447854
mov eax, 1
jmp 0x447856
Function at 0x4478d0
Capabilities:
Get socket status

Disassembly:
sub esp, 0x118
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x114], eax
push ebx
mov ebx, dword [esp + 0x124]
push ebp
mov ebp, dword [esp + 0x12c]
push esi
push edi
push ebp
push ebx
call fcn.004ca770
mov esi, dword [esp + 0x134]
add esp, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
lea edi, [esi + 1]
test ebp, ebp
jg 0x44792e
jl 0x44791c
test ebx, ebx
jae 0x44792e
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
jmp 0x447954
push 0
push 0x3e8
push ebp
push ebx
call fcn.004dafb0
mov dword [esp + 0x10], eax
mov ecx, ebx
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x24], esi
push eax
push 0
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 1
push eax
push 0
push edi
call dword [sym.imp.WSOCK32.dll_select]
mov esi, eax
test esi, esi
js 0x44797f
xor edi, edi
jmp 0x447987
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00447d40
add esp, 4
cmp esi, 0xffffffff
jne 0x44799f
cmp edi, 0x2714
jne 0x4479f1
jmp 0x4479a3
test esi, esi
jne 0x4479ef
lea eax, [esp + 0x18]
push eax
push ebp
push ebx
call fcn.004ca7c0
mov ebx, eax
mov ebp, edx
mov ecx, ebx
add esp, 0xc
or ecx, ebp
je 0x4479d4
call fcn.0046f9b0
mov esi, dword [esp + 0x12c]
lea edi, [esi + 1]
test ax, ax
je 0x447912
xor eax, eax
mov ecx, dword [esp + 0x124]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x118
ret
jns 0x4479f6
or eax, 0xffffffff
jmp 0x4479d6
test esi, esi
jle 0x4479d4
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x130]
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x4479d4
mov eax, 1
jmp 0x4479d6
Function at 0x447a20
Capabilities:
Get socket status

Disassembly:
sub esp, 0x224
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x220], eax
push ebx
mov ebx, dword [esp + 0x230]
push ebp
mov ebp, dword [esp + 0x238]
push esi
push edi
push ebp
push ebx
call fcn.004ca770
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
test ebp, ebp
jg 0x447a74
jl 0x447a62
test ebx, ebx
jae 0x447a74
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
jmp 0x447a9a
push 0
push 0x3e8
push ebp
push ebx
call fcn.004dafb0
mov dword [esp + 0x14], eax
mov ecx, ebx
imul eax, eax, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x238]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x134], edi
push eax
lea eax, [esp + 0x134]
mov dword [esp + 0x134], 1
push eax
push 0
lea eax, [edi + 1]
mov dword [esp + 0x3c], edi
push eax
mov dword [esp + 0x3c], 1
call dword [sym.imp.WSOCK32.dll_select]
mov esi, eax
test esi, esi
js 0x447ae7
xor eax, eax
jmp 0x447aed
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
mov dword [esp + 0x14], eax
call fcn.00447d40
add esp, 4
test esi, esi
jle 0x447b5e
lea eax, [esp + 0x28]
push eax
push edi
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x447b5e
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 4
push eax
lea eax, [esp + 0x14]
push eax
push 0x1007
push 0xffff
push edi
call dword [sym.imp.WSOCK32.dll_getsockopt]
test eax, eax
je 0x447b4c
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
mov dword [esp + 0x14], eax
call fcn.00447d40
add esp, 4
or eax, 0xffffffff
jmp 0x447b8d
mov eax, dword [esp + 0x10]
push eax
call fcn.00447d40
add esp, 4
or eax, 0xffffffff
jmp 0x447b8d
cmp esi, 0xffffffff
jne 0x447b6f
cmp dword [esp + 0x10], 0x2714
jne 0x447ba8
jmp 0x447b73
test esi, esi
jne 0x447ba6
lea eax, [esp + 0x20]
push eax
push ebp
push ebx
call fcn.004ca7c0
add esp, 0xc
or eax, edx
je 0x447b8b
call fcn.0046f9b0
xor eax, eax
mov ecx, dword [esp + 0x230]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x224
ret
jns 0x447bad
or eax, 0xffffffff
jmp 0x447b8d
test esi, esi
jle 0x447b8b
lea eax, [esp + 0x12c]
push eax
push edi
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x447b8b
mov eax, 1
jmp 0x447b8d
Function at 0x447c00
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
push esi
call fcn.0043a0b0
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + 0xc]
test eax, eax
jl 0x447c4c
mov ecx, dword [esp + 0x1c]
jg 0x447c1d
test ecx, ecx
jb 0x447c4c
push eax
push ecx
push ebp
call fcn.004478d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x447c4a
call fcn.00464760
mov dword [eax + 0x10], esi
or esi, 0xffffffff
mov dword [eax + 0xc], 2
call fcn.0043a0b0
mov eax, esi
pop esi
pop ebp
ret
js 0x447cc4
mov eax, dword [esp + 0x18]
push ebx
xor ebx, ebx
push edi
test eax, eax
je 0x447c80
mov ecx, eax
and ecx, 1
mov edx, ecx
or edx, 2
and al, 2
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov ebx, edx
mov eax, ecx
or ebx, 4
and al, 4
cmove ebx, edx
test cl, 8
je 0x447c80
or ebx, 8
nop
push ebx
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebp
call dword [sym.imp.WSOCK32.dll_send]
mov esi, eax
test esi, esi
jle 0x447c9a
xor edi, edi
jmp 0x447ca2
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00447d40
add esp, 4
cmp esi, 0xffffffff
jne 0x447cc2
cmp edi, 0x2714
jne 0x447cc2
call fcn.0046f9b0
test ax, ax
je 0x447c80
pop edi
pop ebx
call fcn.0043a0b0
mov eax, esi
pop esi
pop ebp
ret

Function at 0x447cf0
Capabilities:
Set socket configuration

Disassembly:
xor eax, eax
cmp dword [esp + 8], eax
push esi
setne al
push 4
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
push 8
push 0xffff
push dword [esp + 0x18]
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov esi, eax
cmp esi, 0xffffffff
je 0x447d2c
xor eax, eax
push eax
call fcn.00447d40
add esp, 4
mov eax, esi
pop esi
ret
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
call fcn.00447d40
add esp, 4
mov eax, esi
pop esi
ret

Function at 0x4481c0
Capabilities:
Set socket configuration

Disassembly:
push esi
push 4
lea eax, [esp + 0x10]
push eax
push 0x1002
push 0xffff
push dword [esp + 0x18]
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov esi, eax
cmp esi, 0xffffffff
je 0x4481f2
xor eax, eax
push eax
call fcn.00447d40
add esp, 4
mov eax, esi
pop esi
ret
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
call fcn.00447d40
add esp, 4
mov eax, esi
pop esi
ret

Function at 0x448210
Capabilities:
Set socket configuration

Disassembly:
push esi
push 4
lea eax, [esp + 0x10]
push eax
push 0x1001
push 0xffff
push dword [esp + 0x18]
call dword [sym.imp.WSOCK32.dll_setsockopt]
mov esi, eax
cmp esi, 0xffffffff
je 0x448242
xor eax, eax
push eax
call fcn.00447d40
add esp, 4
mov eax, esi
pop esi
ret
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
call fcn.00447d40
add esp, 4
mov eax, esi
pop esi
ret
Function at 0x448730
Capabilities:
Write file on windows

Disassembly:
mov ecx, dword [esp + 4]
push esi
push edi
lea eax, [ecx - 1]
cmp eax, 0xff
ja 0x448763
lea eax, [ecx + ecx*2]
shl eax, 4
test byte [eax + 0x7eae58], 2
lea esi, [eax + 0x7eae40]
jne 0x448765
mov dword [esi + 0x1c], 2
mov dword [esi + 0x20], 0
xor esi, esi
or edi, 0xffffffff
test esi, esi
je 0x448826
call fcn.0043a0b0
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jg 0x448794
jl 0x448787
mov eax, dword [esp + 0x18]
test eax, eax
jae 0x448798
xorps xmm0, xmm0
movlpd qword [esp + 0x18], xmm0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x10], eax
jne 0x4487a2
cmp dword [esi + 0x14], ecx
je 0x4487cc
push ecx
push eax
push dword [esi + 0xc]
push dword [esi + 8]
push esi
call fcn.00448890
add esp, 0x14
test eax, eax
jne 0x4487cc
push 1
push esi
call fcn.00448830
add esp, 8
call fcn.0043a0b0
mov eax, edi
pop edi
pop esi
ret
push 0
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
push dword [esp + 0x1c]
push dword [esp + 0x1c]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
or edi, 0xffffffff
test eax, eax
cmovne edi, dword [esp + 0xc]
test edi, edi
jne 0x448810
mov dword [esi + 0x20], edi
or edi, 0xffffffff
mov dword [esi + 0x1c], 3
call fcn.0043a0b0
mov eax, edi
pop edi
pop esi
ret
xor ecx, ecx
test eax, eax
sete cl
push ecx
push esi
call fcn.00448830
add esp, 8
call fcn.0043a0b0
mov eax, edi
pop edi
pop esi
ret

Function at 0x4497f0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x430
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x42c], eax
mov eax, dword [esp + 0x440]
push ebx
mov ebx, dword [esp + 0x43c]
push ebp
mov ebp, dword [esp + 0x43c]
push esi
push edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x3e6
nop dword [eax]
mov byte [eax], 0
call fcn.0043a0b0
xor esi, esi
xor edi, edi
test ebx, ebx
je 0x44984b
push ebx
call fcn.00443a20
add esp, 4
mov esi, eax
test ebp, ebp
je 0x449864
cmp byte [ebp], 0
je 0x449864
push ebp
call fcn.00443a20
mov edi, eax
add esp, 4
mov ecx, edi
jmp 0x44988a
lea eax, [esp + 0x1c]
push eax
push 0x108
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x449924
xor eax, eax
lea ecx, [esp + 0x1c]
mov word [esp + 0x22a], ax
lea eax, [esp + 0x22c]
test esi, esi
push eax
push 0
mov eax, 0x6ce9c0
cmovne eax, esi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
mov ebx, eax
test ebx, ebx
je 0x4498c5
push 0x107
push dword [esp + 0x14]
lea eax, [esp + 0x234]
push eax
call fcn.00460600
add esp, 0xc
test esi, esi
je 0x4498d2
push esi
call fcn.00470430
add esp, 4
test edi, edi
je 0x4498df
push edi
call fcn.00470430
add esp, 4
push 0
push ebx
call fcn.00444780
add esp, 8
call fcn.0043a0b0
test ebx, ebx
je 0x449930
push 0x210
push dword [esp + 0x450]
push dword [esp + 0x18]
call fcn.00442d60
add esp, 0xc
cmp eax, 0xffffffff
jne 0x449933
sub dword [esp + 0x14], 1
je 0x449930
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
jmp 0x449830
push 0
push 0
call fcn.00444780
add esp, 8
or eax, 0xffffffff
mov ecx, dword [esp + 0x43c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004daa4c
add esp, 0x430
ret
Function at 0x449ab0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x214
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x210], eax
push esi
mov esi, dword [esp + 0x21c]
lea eax, [esp + 4]
push edi
push eax
push 0x108
or edi, 0xffffffff
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x449b47
xor eax, eax
xor edi, edi
push 0x107
mov word [esp + 0x21a], ax
lea eax, [esp + 0xc]
push esi
push eax
call fcn.00460600
add esp, 0xc
cmp byte [esi], 0
je 0x449b47
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x449b10
sub ecx, edx
cmp byte [esi + ecx - 1], 0x5c
je 0x449b50
mov eax, edi
cmp ecx, 0x107
jge 0x449b52
pop edi
mov word [esi + ecx], 0x5c
pop esi
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.004daa4c
add esp, 0x214
ret
mov word [esi], 0x5c2e
mov byte [esi + 2], 0
mov eax, edi
mov ecx, dword [esp + 0x218]
pop edi
pop esi
xor ecx, esp
call fcn.004daa4c
add esp, 0x214
ret
Function at 0x44a2b0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0x214
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x210], eax
push esi
mov esi, dword [esp + 0x21c]
push edi
xor edi, edi
test esi, esi
je 0x44a3e5
call fcn.0043a0b0
cmp dword [0x7edea4], edi
jne 0x44a323
push 0x6ce15c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x44a306
push str.GetFinalPathNameByHandleW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x7edea4], eax
jmp 0x44a30b
mov eax, dword [0x7edea4]
test eax, eax
jne 0x44a323
push 1
call fcn.00444760
add esp, 4
call fcn.0043a0b0
jmp 0x44a3ef
push esi
call fcn.00443a20
add esp, 4
mov esi, eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44a345
test al, 0x10
je 0x44a345
mov ecx, 1
jmp 0x44a347
xor ecx, ecx
push 0
test ecx, ecx
mov edx, 0x2000010
mov eax, 0x80
cmovne eax, edx
push eax
push 3
push 0
push 1
push SysReAllocStringLen
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
cmp eax, 0xffffffff
jne 0x44a37e
push 0
call fcn.00444780
add esp, 8
jmp 0x44a3d1
push 0x108
lea ecx, [esp + 0x10]
push ecx
push eax
call dword [0x7edea4]
cmp eax, 0x108
jae 0x44a3c7
test eax, eax
je 0x44a3b9
add eax, eax
cmp eax, 0x210
jae 0x44a408
xor ecx, ecx
mov word [esp + eax + 8], cx
lea eax, [esp + 8]
push eax
call fcn.00460590
add esp, 4
mov edi, eax
push 0
push 1
call fcn.00444780
add esp, 8
jmp 0x44a3d1
push 9
call fcn.00444760
add esp, 4
test esi, esi
je 0x44a3de
push esi
call fcn.00470430
add esp, 4
call fcn.0043a0b0
jmp 0x44a3ef
push 2
call fcn.00444760
add esp, 4
mov ecx, dword [esp + 0x218]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.004daa4c
add esp, 0x214
ret
call fcn.004dabad
int3

Function at 0x44a410
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
test esi, esi
je 0x44a4e5
mov edi, dword [esp + 0x10]
test edi, edi
je 0x44a4e5
call fcn.0043a0b0
cmp dword [0x7edea0], 0
jne 0x44a479
push 0x6ce15c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x44a45a
push str.CreateSymbolicLinkW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x7edea0], eax
jmp 0x44a45f
mov eax, dword [0x7edea0]
test eax, eax
jne 0x44a479
push 1
call fcn.00444760
add esp, 4
xor esi, esi
call fcn.0043a0b0
pop edi
mov eax, esi
pop esi
ret
push ebx
push edi
call fcn.00443a20
push esi
mov ebx, eax
call fcn.00443a20
add esp, 8
mov edi, eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44a4a4
test al, 0x10
je 0x44a4a4
mov eax, 1
jmp 0x44a4a6
xor eax, eax
push eax
push edi
push ebx
call dword [0x7edea0]
neg eax
push 0
sbb esi, esi
neg esi
push esi
call fcn.00444780
add esp, 8
test ebx, ebx
je 0x44a4cd
push ebx
call fcn.00470430
add esp, 4
pop ebx
test edi, edi
je 0x44a4db
push edi
call fcn.00470430
add esp, 4
call fcn.0043a0b0
pop edi
mov eax, esi
pop esi
ret
push 2
call fcn.00444760
add esp, 4
xor eax, eax
pop edi
pop esi
ret
Function at 0x44a500
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov al, byte [0x7edeb0]
push ebx
push ebp
mov ebp, dword [esp + 0x10]
dec al
push esi
push edi
xor edi, edi
inc al
mov cl, byte [0x7edeb1]
mov byte [0x7edeb0], al
movzx esi, al
mov eax, edi
cdq
inc edi
idiv ebp
mov eax, dword [esp + 0x14]
mov bl, byte [esi + 0x7edeb2]
movzx eax, byte [edx + eax]
add al, bl
add cl, al
movzx eax, cl
mov byte [0x7edeb1], cl
movzx eax, byte [eax + 0x7edeb2]
mov byte [esi + 0x7edeb2], al
movzx eax, byte [0x7edeb1]
mov byte [eax + 0x7edeb2], bl
mov al, byte [0x7edeb0]
cmp edi, 0x100
jl 0x44a511
pop edi
pop esi
pop ebp
mov byte [0x7edeb1], al
pop ebx
ret

Function at 0x44a580
Capabilities:
Generate random numbers via winapi

Disassembly:
sub esp, 0x24
mov eax, dword [0x7be9b8]
xor eax, esp
mov dword [esp + 0x20], eax
cmp dword [0x7edea8], 0
jne 0x44a5c1
xor eax, eax
nop dword [eax]
mov byte [eax + 0x7edeb2], al
inc eax
cmp eax, 0x100
jl 0x44a5a0
mov word [0x7edeb0], 0
mov dword [0x7edea8], 1
cmp dword [0x7edfd0], 0
push esi
jne 0x44a5f2
push 0xf0000040
push 1
push 0
push 0
push 0x7edfd4
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
jne 0x44a5f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x80090016
jne 0x44a613
lea eax, [esp + 4]
mov dword [0x7edfd0], 1
push eax
push 0x20
push dword [0x7edfd4]
call dword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
jne 0x44a640
call fcn.004c96b0
push eax
call fcn.004e7369
add esp, 4
xor esi, esi
call fcn.004e7348
and eax, 0x800000ff
jns 0x44a636
dec eax
or eax, 0xffffff00
inc eax
mov byte [esp + esi + 4], al
inc esi
cmp esi, 0x20
jb 0x44a623
lea eax, [esp + 4]
push 0x20
push eax
call fcn.0044a500
add esp, 8
mov esi, 0xc00
mov al, byte [0x7edeb0]
inc al
movzx ecx, al
mov byte [0x7edeb0], al
mov al, byte [0x7edeb1]
mov dl, byte [ecx + 0x7edeb2]
add al, dl
mov byte [0x7edeb1], al
movzx eax, al
movzx eax, byte [eax + 0x7edeb2]
mov byte [ecx + 0x7edeb2], al
movzx eax, byte [0x7edeb1]
mov byte [eax + 0x7edeb2], dl
sub esi, 1
jne 0x44a654
mov ecx, dword [esp + 0x24]
pop esi
xor ecx, esp
mov dword [0x7edeac], 0x186a00
call fcn.004daa4c
add esp, 0x24
ret