joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401000
Capabilities:
Set socket configuration

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
push esi
test ebx, ebx
push edi
je 0x401080
mov esi, dword [esp + 0x18]
test esi, esi
je 0x401080
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x401080
lea eax, [esi + 4]
push eax
call sub.WSOCK32.dll_inet_addr
add esi, 0x14
mov edi, eax
push esi
call sub.WSOCK32.dll_inet_addr
mov ecx, dword [ebx + 0x19c]
mov ebp, eax
mov eax, dword [esp + 0x1c]
mov esi, ebp
mov dword [esp + 0x14], ecx
and esi, edi
mov ecx, dword [eax]
xor ebx, ebx
test ecx, ecx
jbe 0x401080
lea edi, [eax + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi - 0x10]
cmp ecx, edx
jne 0x401076
mov ecx, dword [edi]
and ecx, ebp
cmp esi, ecx
jne 0x401076
lea edx, [edi - 8]
push edx
call fcn.0044b4d0
add esp, 4
test eax, eax
je 0x401087
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
inc ebx
add edi, 0x18
cmp ebx, ecx
jb 0x40104f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret

Function at 0x4010a0
Capabilities:
Set socket configuration

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4c5578
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push ebp
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x4fa428]
xor esi, esi
cmp ecx, esi
mov ebx, 1
je 0x4010e1
cmp eax, ecx
jb 0x4010e1
add ecx, 0xea60
cmp ecx, eax
jae 0x40113c
lea ecx, [esp + 0x14]
call fcn.0040ac70
push ecx
mov dword [esp + 0x44], esi
mov ecx, esp
mov dword [esp + 0x14], esp
push str.SGW_DisCheckInternetIP
call fcn.00430e30
lea ecx, [esp + 0x18]
call fcn.0040ae60
cmp dword [esp + 0x34], 0xf0000001
jne 0x401125
lea ecx, [esp + 0x14]
call fcn.0040b2d0
cmp eax, ebx
mov dword [0x4e8130], esi
je 0x40112b
mov dword [0x4e8130], ebx
lea ecx, [esp + 0x14]
mov dword [esp + 0x40], 0xffffffff
call fcn.0040adc0
mov edi, dword [esp + 0x48]
cmp edi, esi
je 0x4011e3
cmp dword [0x4e8130], esi
je 0x4011e3
lea ebp, [edi + 4]
push ebp
call sub.WSOCK32.dll_inet_addr
add edi, 0x14
push edi
call sub.WSOCK32.dll_inet_addr
cmp eax, 0xffffffff
jne 0x40116d
mov esi, ebx
push edi
lea ecx, [esp + 0x14]
call fcn.00430d20
mov edi, eax
push ebp
lea ecx, [esp + 0x4c]
mov dword [esp + 0x44], ebx
call fcn.00430d20
mov ecx, dword [edi]
mov edx, dword [eax]
push ecx
push edx
push str.COSgw::IsInternetIP____s____s_
push 0x4e8168
push 0xf
push 0x4fe0bc
mov byte [esp + 0x58], 2
call fcn.0040c000
add esp, 0x18
lea ecx, [esp + 0x48]
mov byte [esp + 0x40], bl
call fcn.004316a0
lea ecx, [esp + 0x10]
mov dword [esp + 0x40], 0xffffffff
call fcn.004316a0
push esi
push str.COSgw::IsInternetIP___d_
push 0x4e8168
push 0xf
push 0x4fe0bc
call fcn.0040c000
add esp, 0x14
mov ecx, dword [esp + 0x38]
mov eax, esi
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x34
ret
Function at 0x4014a0
Capabilities:
Print debug messages

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4c55d8
push eax
mov dword fs:[0], esp
sub esp, 8
push esi
mov esi, dword [esp + 0x1c]
test esi, esi
jne 0x4014d3
xor eax, eax
pop esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
lea ecx, [esp + 4]
call fcn.00443060
push 0x20019
push str.SOFTWAREClassesCLSIDAFFAEF68_CDC5_4aad_9D3F_997C0D55927BProgID
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x10]
mov dword [esp + 0x20], 0
call fcn.004431d0
test eax, eax
jne 0x40152e
push str.open_reg_error_clsid__n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [esp + 4]
mov dword [esp + 0x14], 0xffffffff
call fcn.00443150
xor eax, eax
pop esi
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret
push 0
push 0x4e829c
lea ecx, [esp + 0xc]
call fcn.00443370
push 0
push 0x4e8298
lea ecx, [esp + 0xc]
mov dword [esi], eax
call fcn.00443370
push 0
push 0x4e8294
lea ecx, [esp + 0xc]
mov dword [esi + 8], eax
call fcn.00443370
mov dword [esi + 4], eax
lea eax, [esp + 0x1c]
push eax
push 0x4e8290
lea ecx, [esp + 0xc]
mov dword [esp + 0x24], 0
call fcn.004435f0
test eax, eax
je 0x401592
cmp dword [esp + 0x1c], 0xc
jb 0x401592
mov ecx, dword [eax + 8]
mov dword [esi + 0xc], ecx
lea ecx, [esp + 4]
call fcn.00443220
lea ecx, [esp + 4]
mov dword [esp + 0x14], 0xffffffff
call fcn.00443150
mov ecx, dword [esp + 0xc]
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x14
ret

Function at 0x4015d0
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4c55f8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
lea ecx, [esp]
call fcn.00443060
push 0x20019
push str.SOFTWARETECOcular.3Agent
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0xc]
mov dword [esp + 0x48], 0
call fcn.004431d0
test eax, eax
jne 0x401642
push str.open_reg_error_agent__n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea ecx, [esp]
mov dword [esp + 0x3c], 0xffffffff
call fcn.00443150
xor eax, eax
mov ecx, dword [esp + 0x34]
mov dword fs:[0], ecx
add esp, 0x40
ret
lea eax, [esp + 8]
push 8
push eax
push str.ConnServerTime3
lea ecx, [esp + 0xc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.004434b0
fld qword [esp + 8]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], 0
fstp qword [esp + 0x10]
push ecx
call fcn.0040e6bc
lea edx, [esp + 0x10]
lea eax, [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x24]
call fcn.0040ecc1
fld qword [esp + 0x28]
fmul qword [0x4caaa0]
fadd qword [0x4caa98]
call fcn.00418874
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
lea ecx, [esp]
call fcn.00443220
lea ecx, [esp]
mov dword [esp + 0x3c], 0xffffffff
call fcn.00443150
mov ecx, dword [esp + 0x34]
mov eax, 1
mov dword fs:[0], ecx
add esp, 0x40
ret
Function at 0x402490
Capabilities:
Terminate process

Disassembly:
sub esp, 0x1c
push esi
call fcn.00401410
mov esi, eax
mov al, byte [0x4fa444]
test al, 1
jne 0x4024da
mov dl, al
push 0x402580
or dl, 1
mov dword [0x4fa438], 0
mov byte [0x4fa444], dl
mov dword [0x4fa43c], 0
mov dword [0x4fa440], 0
call fcn.004187d0
add esp, 4
test esi, esi
pop esi
je 0x4024ed
mov dword [0x4fa45c], 0
add esp, 0x1c
ret
mov eax, dword [0x4fa45c]
test eax, eax
je 0x402544
lea eax, [esp + 4]
push eax
call fcn.0040e6bc
lea ecx, [esp + 0x10]
push 0x4fa438
push ecx
lea ecx, [esp + 0xc]
call fcn.0040ecc1
fld qword [esp + 0x10]
fmul qword [0x4caaa0]
fadd qword [0x4caa98]
call fcn.00418874
mov dword [esp], eax
fild dword [esp]
fcomp qword [0x4caab0]
fnstsw ax
test ah, 1
jne 0x402571
push 0
call fcn.00418aeb
lea edx, [esp + 0x10]
mov dword [0x4fa45c], 1
push edx
call fcn.0040e6bc
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [0x4fa438], ecx
mov dword [0x4fa43c], edx
mov eax, dword [eax + 8]
mov dword [0x4fa440], eax
add esp, 0x1c
ret
Function at 0x403060
Capabilities:
Print debug messages

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi]
call dword [eax + 0x10]
push 0
push 0x3f
push 2
push 0x21c7
mov ecx, esi
call fcn.004c4413
test eax, eax
pop esi
jne 0x40308a
push str.create_socket_fail
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
ret

Function at 0x403090
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4c5838
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x28]
push ebp
mov ebp, dword [esp + 0x28]
push esi
mov esi, dword [esp + 0x34]
push edi
mov edi, ecx
mov eax, dword [esi + 8]
push eax
push ebx
push ebp
push str.COSgwSocket::SendData__________08x___08x___d_
push 0x4e8168
push 0xf
push 0x4fe0bc
call fcn.0040c000
add esp, 0x1c
mov ecx, edi
call fcn.00403060
xor eax, eax
push 0x21c7
mov dword [esp + 0x14], eax
mov word [esp + 0x14], 2
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
call sub.WSOCK32.dll_htons
mov word [esp + 0x12], ax
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x30], ecx
jle 0x40320e
mov edx, dword [esi + 4]
mov eax, dword [edx + ecx*4]
test eax, eax
je 0x4031fe
push 0
lea ecx, [esp + 0x14]
push 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
push ecx
push ebx
push ebp
mov ecx, edi
call dword [eax + 0x3c]
mov edx, dword [esp + 0x14]
mov esi, eax
push edx
push esi
push str.COSgwSocket::SendData_1___d___08x_
push 0x4e8168
push 0xf
push 0x4fe0bc
call fcn.0040c000
add esp, 0x18
cmp esi, 0xffffffff
jne 0x4031eb
call sub.WSOCK32.dll_WSAGetLastError
mov esi, eax
mov eax, dword [0x4e9c8c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], 0
call sub.WSOCK32.dll_WSAGetLastError
push eax
lea ecx, [esp + 0x38]
push str.send_data_error._last_error__d_
push ecx
call fcn.004a8555
mov edx, dword [esp + 0x40]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
push str.COSgwSocket::SendData_2___d_
push 0x4e8168
push 0xf
push 0x4fe0bc
call fcn.0040c000
add esp, 0x14
call sub.WSOCK32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x4031da
push str.reinit_socket
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, edi
call fcn.00403060
lea ecx, [esp + 0x34]
mov dword [esp + 0x28], 0xffffffff
call fcn.004ab4b5
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 8]
inc ecx
cmp ecx, eax
mov dword [esp + 0x30], ecx
jl 0x403119
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
push str.COSgwSocket::SendData___
push 0x4e8168
push 0xf
push 0x4fe0bc
call fcn.0040c000
mov ecx, dword [esp + 0x30]
add esp, 0x10
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0xc
Function at 0x404940
Capabilities:
Set registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp], 0
test ecx, ecx
mov eax, 0x2001f
je 0x40495b
mov eax, 0x2011f
mov edx, dword [esp + 8]
lea ecx, [esp]
push ecx
push eax
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4049b3
push esi
mov esi, dword [esp + 0x14]
test esi, esi
je 0x40498f
push esi
call fcn.0041907c
add esp, 4
lea eax, [eax + eax + 2]
jmp 0x404991
xor eax, eax
mov ecx, dword [esp + 4]
push eax
mov eax, dword [esp + 0x14]
push esi
push 1
push 0
push eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [esp + 4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ecx
ret 0x10

Function at 0x4049c0
Capabilities:
Set registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0x14]
mov dword [esp], 0
test ecx, ecx
mov eax, 0x2001f
je 0x4049db
mov eax, 0x2011f
mov edx, dword [esp + 8]
lea ecx, [esp]
push ecx
push eax
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404a1d
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
lea eax, [esp + 0x10]
push 4
push eax
push 4
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [esp]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ecx
ret 0x10

Function at 0x404a30
Capabilities:
Set registry value

Disassembly:
push ecx
mov ecx, dword [esp + 0x18]
mov dword [esp], 0
test ecx, ecx
mov eax, 0x2001f
je 0x404a4b
mov eax, 0x2011f
mov edx, dword [esp + 8]
lea ecx, [esp]
push ecx
push eax
push 0
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x404a8d
mov ecx, dword [esp + 0xc]
mov edx, dword [esp]
lea eax, [esp + 0x10]
push 8
push eax
push 3
push 0
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov eax, dword [esp]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop ecx
ret 0x14

Function at 0x404aa0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
mov ecx, dword [esp + 0xc]
lea eax, [esp]
push esi
push eax
xor esi, esi
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x10], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x404b3a
mov ecx, dword [esp + 4]
push ebx
lea edx, [esp + 0x14]
push edi
mov edi, dword [esp + 0x1c]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], eax
push eax
lea eax, [esp + 0x18]
push eax
push esi
push edi
push ecx
call ebx
mov eax, dword [esp + 0x18]
cmp eax, 2
jb 0x404b24
add eax, 2
mov dword [esp + 0x18], eax
shr eax, 1
lea edx, [eax + eax]
push edx
call fcn.004ab1f0
mov esi, eax
add esp, 4
test esi, esi
je 0x404b24
mov edx, dword [esp + 0xc]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x14]
push esi
push ecx
push 0
push edi
push edx
call ebx
mov eax, dword [esp + 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
mov eax, esi
pop ebx
pop esi
add esp, 8
ret 8
mov eax, esi
pop esi
add esp, 8
ret 8
Function at 0x404b50
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x10]
lea eax, [esp]
push eax
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x404bb4
mov dword [esp + 8], eax
lea edx, [esp + 0x10]
lea eax, [esp + 4]
push edx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xc]
push eax
mov eax, dword [esp + 8]
push ecx
push 0
push edx
push eax
mov dword [esp + 0x28], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [esp + 4]
add esp, 0xc
ret 8

Function at 0x404bc0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
mov ecx, dword [esp + 0x14]
lea eax, [esp]
push eax
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x404c2c
mov dword [esp + 4], eax
lea edx, [esp + 0x14]
lea eax, [esp + 8]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 8]
push eax
mov eax, dword [esp + 8]
push ecx
push 0
push edx
push eax
mov dword [esp + 0x2c], 8
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [esp]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
fld qword [esp + 8]
add esp, 0x10
ret 8
Function at 0x404dbd
Capabilities:
Enumerate files on windows

Disassembly:
push 0xffffffffffffffff
push 0x4c593b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x660
push ebx
push ebp
push esi
mov esi, ecx
push 1
call fcn.00405180
mov ebx, eax
xor ebp, ebp
cmp ebx, ebp
mov dword [esp + 0x10], ebx
je 0x404f02
push edi
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x26a]
mov word [esp + 0x268], bp
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x680]
stosw word es:[edi], ax
lea eax, [esp + 0x268]
push eax
push ecx
mov ecx, esi
call fcn.004053e0
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x46a]
mov word [esp + 0x468], bp
rep stosd dword es:[edi], eax
lea edx, [esp + 0x268]
stosw word es:[edi], ax
push edx
push ebx
lea eax, [esp + 0x470]
push 0x4e90fc
push eax
call fcn.004190d6
mov ecx, 0x93
xor eax, eax
lea edi, [esp + 0x2c]
mov dword [esp + 0x28], ebp
rep stosd dword es:[edi], eax
add esp, 0x10
lea ecx, [esp + 0x18]
lea edx, [esp + 0x468]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x404ef8
mov esi, dword [esp + 0x684]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpW]
lea eax, [esp + 0x44]
push 0x4e90f4
push eax
call ebx
test eax, eax
je 0x404edd
lea ecx, [esp + 0x44]
push 0x4e90f0
push ecx
call ebx
test eax, eax
je 0x404edd
test byte [esp + 0x18], 0x10
jne 0x404edd
lea edx, [esp + 0x44]
lea ecx, [esp + 0x10]
push edx
call fcn.004ab575
mov eax, dword [esi + 8]
lea ecx, [esp + 0x10]
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x680], ebp
call fcn.004aa2b0
lea ecx, [esp + 0x10]
mov dword [esp + 0x678], 0xffffffff
call fcn.004ab4b5
lea edx, [esp + 0x18]
push edx
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404e7d
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [esp + 0x14]
push ebx
call fcn.004ab219
add esp, 4
pop edi
mov ecx, dword [esp + 0x66c]
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x66c
ret 8
Function at 0x409be0
Capabilities:
Set file attributes

Disassembly:
sub esp, 0x664
push ebx
push esi
mov esi, dword [esp + 0x670]
xor ebx, ebx
cmp esi, ebx
je 0x409d83
push esi
call fcn.0041907c
add esp, 4
test eax, eax
je 0x409d83
push ebx
push ebx
push ebx
push ebx
lea eax, [esp + 0x18]
push ebx
push eax
push esi
mov dword [esp + 0x24], ebx
call fcn.004071e0
add esp, 0x1c
test eax, eax
je 0x409d83
mov eax, dword [esp + 8]
cmp eax, 0xffffffff
je 0x409d83
test al, 1
je 0x409c4c
and al, 0xfe
push eax
push esi
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [esp + 8]
test al, 0x10
je 0x409d73
push edi
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x12]
mov word [esp + 0x10], bx
push esi
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x14]
push ecx
stosw word es:[edi], ax
call fcn.00419057
lea edx, [esp + 0x18]
push 0x4e9980
push edx
call fcn.0041902d
mov ecx, 0x93
xor eax, eax
lea edi, [esp + 0x22c]
mov dword [esp + 0x228], ebx
add esp, 0x10
rep stosd dword es:[edi], eax
lea eax, [esp + 0x218]
lea ecx, [esp + 0x10]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x409d62
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcmpW]
lea edx, [esp + 0x248]
push 0x4e90f4
push edx
call ebp
test eax, eax
je 0x409d43
lea eax, [esp + 0x248]
push 0x4e90f0
push eax
call ebp
test eax, eax
je 0x409d43
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x46e]
mov word [esp + 0x46c], 0
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x46c]
push esi
push ecx
stosw word es:[edi], ax
call fcn.00419057
lea edx, [esp + 0x1c]
push 0x4e99cc
push edx
call fcn.0041902d
lea eax, [esp + 0x258]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.0041902d
lea edx, [esp + 0x484]
push edx
call fcn.00409be0
add esp, 0x1c
lea eax, [esp + 0x21c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x409cc2
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
pop ebp
push esi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
pop edi
pop esi
pop ebx
add esp, 0x664
ret
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop esi
pop ebx
add esp, 0x664
ret
pop esi
xor eax, eax
pop ebx
add esp, 0x664
ret
Function at 0x409de0
Capabilities:
Check for time delay via gettickcount
Check if file exists
Copy file
Get file attributes
Move file
Set file attributes

Disassembly:
sub esp, 0x204
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push ebp
mov ebp, dword [esp + 0x214]
push esi
push edi
push ebp
call ebx
cmp eax, 0xffffffff
jne 0x409e21
mov eax, dword [esp + 0x220]
mov ecx, dword [esp + 0x218]
push eax
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
test al, 1
je 0x409e37
and al, 0xfe
push eax
push ebp
mov dword [esp + 0x18], eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov eax, dword [esp + 0x10]
test al, 0x10
je 0x409eb6
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
push eax
push ebp
lea edx, [esp + 0x1c]
push str._s.bak_08X
push edx
call fcn.0041982f
add esp, 0x10
lea eax, [esp + 0x14]
xor esi, esi
push eax
call ebx
cmp eax, 0xffffffff
je 0x409eaa
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
call edi
push eax
push ebp
lea ecx, [esp + 0x1c]
push str._s.bak_08X
push ecx
call fcn.0041982f
add esp, 0x10
lea edx, [esp + 0x14]
push edx
call ebx
inc esi
cmp esi, 0xa
jge 0x409ed8
cmp eax, 0xffffffff
jne 0x409e7a
lea eax, [esp + 0x14]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_MoveFileA]
mov ecx, dword [esp + 0x220]
mov edx, dword [esp + 0x218]
push ecx
push ebp
push edx
call dword [sym.imp.KERNEL32.dll_CopyFileA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x204
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x204
ret

Function at 0x40a100
Capabilities:
Get graphical window text

Disassembly:
call fcn.0044e300
test eax, eax
je 0x40a11f
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowTextW]
ret
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x18]
xor ebp, ebp
test edi, edi
je 0x40a1a0
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40a1a0
lea ecx, [esi + esi]
xor eax, eax
mov edx, ecx
push esi
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
call fcn.004ab1f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x40a1a0
mov ecx, esi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
push esi
and ecx, 3
push ebx
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ebp, eax
test ebp, ebp
je 0x40a1a0
push esi
mov esi, dword [esp + 0x1c]
push esi
push 0xffffffffffffffff
push ebx
xor ebp, ebp
call fcn.004065e0
add esp, 0x10
test eax, eax
je 0x40a1a0
push esi
call fcn.0041907c
add esp, 4
mov ebp, eax
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
ret
Function at 0x40a9d0
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4c5b3b
push eax
mov eax, dword [0x4fe990]
mov dword fs:[0], esp
sub esp, 0x910
push ebx
xor ebx, ebx
cmp eax, ebx
push edi
jne 0x40ac16
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x519]
mov byte [esp + 0x518], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0xff
xor eax, eax
lea edi, [esp + 0x119]
mov byte [esp + 0x118], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x15]
mov byte [esp + 0x14], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push str.OAgent.ini
mov dword [0x4fe990], 1
mov dword [esp + 0xc], ebx
stosb byte es:[edi], al
call fcn.004032e0
push eax
lea eax, [esp + 0x1c]
push str._s_s
push eax
call fcn.0041982f
add esp, 0x10
lea ecx, [esp + 0x14]
lea edx, [esp + 0x118]
push ecx
push 0x400
push edx
push 0x4fe994
push 0x4cae50
push str.AgentConfig
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp eax, ebx
jbe 0x40aac6
cmp byte [esp + 0x517], bl
jne 0x40aac6
lea eax, [esp + 0x518]
push 0x400
lea ecx, [esp + 0x11c]
push eax
push ecx
call fcn.0045e6c0
add esp, 0xc
mov dword [esp + 8], eax
jmp 0x40aaca
mov eax, dword [esp + 8]
cmp eax, ebx
jne 0x40abd4
lea ecx, [esp + 0xc]
call fcn.00443060
push 0x20019
push 0x4cae54
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [esp + 0x18]
mov dword [esp + 0x92c], ebx
call fcn.004431d0
test eax, eax
je 0x40ab49
lea edx, [esp + 8]
lea ecx, [esp + 0xc]
push edx
push 0x4cae9c
call fcn.004435f0
cmp eax, ebx
je 0x40ab49
mov ecx, dword [esp + 8]
cmp ecx, 0x400
jae 0x40ab3c
mov edx, ecx
push esi
mov esi, eax
lea edi, [esp + 0x51c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x40ab40
mov dword [esp + 8], ebx
push eax
call fcn.004ab219
add esp, 4
lea ecx, [esp + 0xc]
call fcn.00443220
lea ecx, [esp + 0xc]
mov dword [esp + 0x920], 0xffffffff
call fcn.00443150
mov eax, dword [esp + 8]
cmp eax, ebx
jne 0x40abd4
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x118]
push 0x400
rep stosd dword es:[edi], eax
lea eax, [esp + 0x11c]
push eax
push 0x4fe994
push 0x4cae9c
push str.ED30_8AC4_11D5_8930_A730
call dword [sym.imp.KERNEL32.dll_GetProfileStringA]
test eax, eax
jbe 0x40abcc
cmp byte [esp + 0x517], bl
jne 0x40abcc
lea ecx, [esp + 0x518]
push 0x400
lea edx, [esp + 0x11c]
push ecx
push edx
call fcn.0045e6c0
add esp, 0xc
jmp 0x40abd0
mov eax, dword [esp + 8]
cmp eax, ebx
je 0x40ac16
cmp eax, 4
jbe 0x40ac16
lea ecx, [esp + 0x518]
test ecx, ecx
je 0x40ac16
cmp dword [esp + 0x518], 1
je 0x40ac16
mov edx, dword [esp + 0x534]
and edx, 0xffff
lea ecx, [edx + edx + 0x22]
cmp ecx, ebx
je 0x40ac16
add eax, 0xfffffffc
cmp ecx, eax
ja 0x40ac16
mov eax, dword [esp + 0x520]
mov dword [0x4fe98c], eax
mov ecx, dword [esp + 0x918]
pop edi
pop ebx
mov dword fs:[0], ecx
add esp, 0x91c
ret