joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4caf14
Capabilities:
Timestomp file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
mov esi, eax
xor ebx, ebx
push 0
push 0x80
push 3
push 0
push 3
push 0x40000000
mov eax, esi
call fcn.00404dcc
push eax
call sub.kernel32.dll_CreateFileA_1
mov esi, eax
cmp esi, 0xffffffff
je 0x4cafce
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
push esi
call sub.kernel32.dll_GetFileTime
fld qword [ebp + 0x18]
fcomp dword [0x4cafd8]
fnstsw ax
sahf
je 0x4caf78
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
lea eax, [ebp - 8]
call fcn.004caec0
fld qword [ebp + 8]
fcomp dword [0x4cafd8]
fnstsw ax
sahf
je 0x4caf94
push dword [ebp + 0xc]
push dword [ebp + 8]
lea eax, [ebp - 0x10]
call fcn.004caec0
fld qword [ebp + 0x10]
fcomp dword [0x4cafd8]
fnstsw ax
sahf
je 0x4cafb0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
lea eax, [ebp - 0x18]
call fcn.004caec0
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
push esi
call sub.kernel32.dll_SetFileTime
cmp eax, 1
sbb ebx, ebx
inc ebx
push esi
call sub.kernel32.dll_CloseHandle_1
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18

Function at 0x4cb018
Capabilities:
Get file size

Disassembly:
push ebx
add esp, 0xfffffff4
mov ebx, eax
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0xffffffff
push 0
push 0x80
push 3
push 0
push 3
push 0
mov eax, ebx
call fcn.00404dcc
push eax
call sub.kernel32.dll_CreateFileA_1
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4cb073
lea eax, [esp + 8]
push eax
push ebx
call sub.kernel32.dll_GetFileSize_1
mov edx, eax
mov eax, dword [esp + 8]
call fcn.004cafdc
mov dword [esp], eax
mov dword [esp + 4], edx
push ebx
call sub.kernel32.dll_CloseHandle_1
mov eax, dword [esp]
mov edx, dword [esp + 4]
add esp, 0xc
pop ebx
ret

Function at 0x4cb080
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov edi, eax
mov byte [ebp - 1], 0
cmp dword [ebp + 8], 0
je 0x4cb103
push ecx
push edx
push edi
call sub.kernel32.dll_FindResourceA
mov ebx, eax
test ebx, ebx
je 0x4cb103
push ebx
push edi
call sub.kernel32.dll_LoadResource
mov esi, eax
test esi, esi
je 0x4cb103
push esi
call sub.kernel32.dll_LockResource
mov dword [ebp - 8], eax
push esi
call sub.kernel32.dll_FreeResource
cmp dword [ebp - 8], 0
je 0x4cb103
push ebx
push edi
call sub.kernel32.dll_SizeofResource
test eax, eax
je 0x4cb103
xor edx, edx
push ebp
push 0x4cb0f9
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [ebp - 8]
mov ecx, eax
mov eax, dword [ebp + 8]
call fcn.00423058
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4cb103
mov al, byte [ebp - 1]
pop edi
pop esi
pop ebx
pop ecx
pop ecx
pop ebp
ret 4
Function at 0x4cb200
Capabilities:
Set file attributes

Disassembly:
push ebx
push esi
push ecx
mov byte [esp], dl
mov esi, eax
xor ebx, ebx
test byte [esp], 1
je 0x4cb213
add ebx, 0x20
test byte [esp], 2
je 0x4cb21c
add ebx, 2
test byte [esp], 4
je 0x4cb223
inc ebx
test byte [esp], 8
je 0x4cb22c
add ebx, 4
test byte [esp], 0x10
je 0x4cb238
add ebx, 0x100
test byte [esp], 0x20
je 0x4cb244
add ebx, 0x1000
push ebx
mov eax, esi
call fcn.00404dcc
push eax
call sub.kernel32.dll_SetFileAttributesA
cmp eax, 1
sbb eax, eax
inc eax
pop edx
pop esi
pop ebx
ret

Function at 0x4cc188
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov edi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404dbc
lea esi, [ebp - 0x44]
xor eax, eax
push ebp
push 0x4cc30f
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 4]
mov eax, 0x4cc32c
call fcn.00404f10
test eax, eax
jne 0x4cc1d3
lea eax, [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, 0x4cc338
call fcn.00404c18
mov eax, esi
mov edx, 0x3c
call fcn.004cb138
mov dword [esi + 8], 0x21
mov dword [esi + 0x14], 0x101
mov dword [esi + 0x20], 0x81
mov dword [esi + 0x28], 0x81
mov dword [esi + 0x30], 0x801
mov dword [esi + 0x38], 0x801
mov eax, 0x21
call fcn.00402a40
mov dword [esi + 4], eax
mov eax, 0x101
call fcn.00402a40
mov dword [esi + 0x10], eax
mov eax, 0x81
call fcn.00402a40
mov dword [esi + 0x1c], eax
mov eax, 0x81
call fcn.00402a40
mov dword [esi + 0x24], eax
mov eax, 0x801
call fcn.00402a40
mov dword [esi + 0x2c], eax
mov eax, 0x801
call fcn.00402a40
mov dword [esi + 0x34], eax
push esi
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00404bcc
push eax
mov eax, dword [ebp - 4]
call fcn.00404dcc
push eax
call sub.wininet.dll_InternetCrackUrlA
cmp eax, 1
sbb ebx, ebx
inc ebx
test bl, bl
je 0x4cc2c9
mov eax, edi
mov edx, dword [esi + 4]
call fcn.00404b04
mov eax, dword [ebp - 8]
mov edx, dword [esi + 0x10]
call fcn.00404b04
mov eax, dword [ebp + 0x18]
mov edx, dword [esi + 0x2c]
call fcn.00404b04
mov eax, dword [ebp + 0x14]
mov edx, dword [esi + 0x1c]
call fcn.00404b04
mov eax, dword [ebp + 0x10]
mov edx, dword [esi + 0x24]
call fcn.00404b04
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0x34]
call fcn.00404b04
mov eax, dword [ebp + 8]
mov dx, word [esi + 0x18]
mov word [eax], dx
mov eax, dword [esi + 0x34]
call fcn.00402a60
mov eax, dword [esi + 0x2c]
call fcn.00402a60
mov eax, dword [esi + 0x24]
call fcn.00402a60
mov eax, dword [esi + 0x1c]
call fcn.00402a60
mov eax, dword [esi + 0x10]
call fcn.00402a60
mov eax, dword [esi + 4]
call fcn.00402a60
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cc316
lea eax, [ebp - 4]
call fcn.0040490c
ret
Function at 0x4cc530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
mov ebx, eax
push esi
push edi
mov esi, ecx
mov eax, esi
test eax, eax
je 0x4cc549
mov eax, dword [esi - 4]
push eax
push esi
mov esi, edx
mov ecx, esi
test ecx, ecx
je 0x4cc556
mov ecx, dword [esi - 4]
add al, cl
inc eax
lea edi, [ebp - 0x100]
mov edx, eax
stosb byte es:[edi], al
mov al, cl
stosb byte es:[edi], al
rep movsb byte es:[edi], byte [esi]
pop esi
pop ecx
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
std
dec edi
mov esi, edi
xor dl, 0xeb
lodsb al, byte [esi]
xor al, dl
stosb byte es:[edi], al
loop 0x4cc574
cld
pop edi
pop esi
xor ecx, ecx
mov cl, byte [ebp - 0x100]
inc ecx
lea edx, [ebp - 0x100]
mov eax, ebx
mov ebx, dword [eax]
call dword [ebx + 0x10]
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4cc598
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe7c
push ebx
push esi
push edi
mov dword [ebp - 0x184], ecx
mov esi, edx
mov ebx, eax
lea edx, [ebp - 0x80]
mov ecx, 1
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
xor ecx, ecx
mov cl, byte [ebp - 0x80]
lea edx, [ebp - 0x7f]
mov eax, ebx
mov ebx, dword [eax]
call dword [ebx + 0xc]
push esi
push edi
xor eax, eax
lea esi, [ebp - 0x80]
lodsb al, byte [esi]
push esi
push eax
mov ecx, eax
mov edx, eax
mov edi, esi
xor dl, 0xeb
lodsb al, byte [esi]
xor al, dl
stosb byte es:[edi], al
loop 0x4cc5df
pop eax
pop esi
lea edi, [ebp - 0x100]
mov cl, byte [esi]
inc ecx
sub eax, ecx
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x180]
stosb byte es:[edi], al
mov ecx, eax
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov eax, esi
lea edx, [ebp - 0x100]
call fcn.00404b70
mov eax, dword [ebp - 0x184]
lea edx, [ebp - 0x180]
call fcn.00404b70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4cc940
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x1c], ebx
test dl, dl
je 0x4cc95d
add esp, 0xfffffff0
call fcn.00403e5c
mov esi, ecx
mov byte [ebp - 1], dl
mov ebx, eax
xor eax, eax
push ebp
push 0x4cca5c
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 8], 0
je 0x4cc9aa
mov eax, esi
call fcn.00404dcc
push eax
call sub.kernel32.dll_GetFileAttributesA
mov edi, eax
mov eax, edi
and eax, 2
cmp eax, 2
je 0x4cc99b
mov eax, edi
and eax, 1
cmp eax, 1
jne 0x4cc9aa
push 0x20
mov eax, esi
call fcn.00404dcc
push eax
call sub.kernel32.dll_SetFileAttributesA
push 0
push 0x80
xor eax, eax
mov al, byte [ebp + 0xc]
mov eax, dword [eax*4 + 0x4d7e80]
push eax
push 0
push 3
push 0xc0000000
mov eax, esi
call fcn.00404dcc
push eax
call sub.kernel32.dll_CreateFileA_1
mov ecx, eax
xor edx, edx
mov eax, ebx
call fcn.004231e4
cmp dword [ebx + 4], 0
jge 0x4cca2d
lea edx, [ebp - 0x18]
mov eax, esi
call fcn.0040c828
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x10], 0xb
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0x1c]
call fcn.0040f2a8
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xc], eax
mov byte [ebp - 8], 0xb
lea eax, [ebp - 0x14]
push eax
push 1
mov ecx, dword [0x4d8c00]
mov dl, 1
mov eax, dword [0x41e84c]
call fcn.0040fbb4
call fcn.004042c4
cmp byte [ebp + 8], 0
je 0x4cca41
push edi
mov eax, esi
call fcn.00404dcc
push eax
call sub.kernel32.dll_SetFileAttributesA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cca63
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00404930
ret
Function at 0x4cd2fc
Capabilities:
Check http status code

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push ebx
push esi
xor eax, eax
push ebp
push 0x4cd419
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp + 8]
push eax
xor eax, eax
call fcn.004cd1c4
pop ecx
test al, al
je 0x4cd3f4
mov eax, dword [ebp + 8]
push eax
call fcn.004cd008
pop ecx
test al, al
jne 0x4cd3f4
push 0
push 0
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x140]
push eax
call sub.wininet.dll_HttpSendRequestA
test eax, eax
je 0x4cd3f4
mov eax, dword [ebp + 8]
push eax
mov eax, 0x13
call fcn.004cd048
pop ecx
test al, al
je 0x4cd3f4
lea eax, [ebp - 4]
mov edx, dword [ebp + 8]
add edx, 0xffffeffc
mov ecx, 0x1000
call fcn.00404b7c
mov eax, dword [ebp - 4]
xor edx, edx
call fcn.0040c1fc
mov edx, dword [ebp + 8]
mov edx, dword [edx - 4]
mov dword [edx + 0x188], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
mov esi, dword [eax + 0x188]
cmp esi, 0xc8
je 0x4cd3bf
mov eax, dword [ebp + 8]
cmp esi, 0xce
jne 0x4cd3f4
mov eax, dword [ebp + 8]
push eax
mov eax, 5
call fcn.004cd048
pop ecx
test al, al
je 0x4cd3f4
lea eax, [ebp - 8]
mov edx, dword [ebp + 8]
add edx, 0xffffeffc
mov ecx, 0x1000
call fcn.00404b7c
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.0040c1fc
mov ebx, eax
mov eax, dword [ebp + 8]
push eax
call fcn.004cd008
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cd420
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404930
ret
Function at 0x4d26e8
Capabilities:
Create process on windows
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d283c
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push pe_nt_image_headers32
push 2
push 0
push 3
push 0x40000000
mov eax, dword [0x4dc3b8]
call fcn.00404dcc
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
je 0x4d27af
mov dl, 1
mov eax, dword [0x41f3f4]
call fcn.00403b08
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x4d279f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
push eax
mov ecx, 0x4d2848
mov edx, 0x4d2848
mov eax, dword [0x4d9668]
call fcn.004cb080
push 0
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_WriteFile_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d27a6
mov eax, dword [ebp - 0x10]
call fcn.00403b38
ret
push 1
push dword [0x4dc3b8]
push 0x4d2858
lea edx, [ebp - 0x1c]
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
call fcn.00471a70
push dword [ebp - 0x1c]
push 0x4d2864
push dword [ebp - 8]
lea eax, [ebp - 0x18]
mov edx, 5
call fcn.00404c8c
mov eax, dword [ebp - 0x18]
call fcn.00404dcc
push eax
call sub.kernel32.dll_WinExec
mov eax, dword [ebp - 4]
mov byte [eax + 0x264], 1
mov eax, dword [ebp - 4]
cmp word [eax + 0x1fa], 0
je 0x4d281c
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x1fc]
call dword [ebx + 0x1f8]
jmp 0x4d2821
call fcn.004cb110
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d2843
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00404930
ret

Function at 0x4d290c
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb0
push ebx
xor edx, edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x144], edx
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x14c], edx
xor eax, eax
push ebp
push 0x4d29f7
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x140]
push eax
lea edx, [ebp - 0x14c]
mov eax, dword [0x4d88fc]
mov eax, dword [eax]
call fcn.00471a70
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 0x148]
call fcn.0040c774
mov eax, dword [ebp - 0x148]
lea edx, [ebp - 0x144]
call fcn.004107a4
lea eax, [ebp - 0x144]
mov edx, 0x4d2a0c
call fcn.00404bd4
mov eax, dword [ebp - 0x144]
call fcn.00404dcc
push eax
call sub.kernel32.dll_FindFirstFileA_1
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4d29d9
lea eax, [ebp - 0x150]
lea edx, [ebp - 0x114]
mov ecx, 0x104
call fcn.00404b7c
mov eax, dword [ebp - 0x150]
call fcn.0040c6dc
lea eax, [ebp - 0x140]
push eax
push ebx
call sub.kernel32.dll_FindNextFileA
test eax, eax
jne 0x4d29a1
push ebx
call sub.kernel32.dll_FindClose_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d29fe
lea eax, [ebp - 0x150]
mov edx, 4
call fcn.00404930
ret
Function at 0x4d4160
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
add esp, 0xfffffff0
mov esi, ecx
mov ebx, edx
push 1
push ebx
call sub.user32.dll_ShowWindow
mov eax, ebx
call fcn.0047cbe0
push 3
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push ebx
call sub.user32.dll_SetWindowPos
push esp
push ebx
call sub.user32.dll_GetWindowRect
mov eax, dword [esp + 4]
add eax, 0x78
push eax
mov eax, dword [esp + 4]
add eax, 0x1e
push eax
call sub.user32.dll_SetCursorPos
push 0
push 0
push 0
push 0
push 2
call sub.user32.dll_mouse_event
push 0
push 0
push 0
push 0
push 4
call sub.user32.dll_mouse_event
push 0
push 0
push 0
push 0
push 2
call sub.user32.dll_mouse_event
push 0
push 0
push 0
push 0
push 4
call sub.user32.dll_mouse_event
push 0
push 0
push 0
push 0
push 2
call sub.user32.dll_mouse_event
push 0
push 0
push 0
push 0
push 4
call sub.user32.dll_mouse_event
push 0
push 0
push 0
push 0x11
call sub.user32.dll_keybd_event
push 0
push 0
push 0
push 0x43
call sub.user32.dll_keybd_event
push 0
push 2
push 0
push 0x43
call sub.user32.dll_keybd_event
push 0
push 2
push 0
push 0x11
call sub.user32.dll_keybd_event
mov eax, 0x1f4
call fcn.0047d1d4
push 0
push 0
push 0x10
push ebx
call sub.user32.dll_SendMessageA
call fcn.0043b9dc
mov edx, esi
call fcn.0043b5fc
add esp, 0x10
pop esi
pop ebx
ret

Function at 0x4d42b4
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x10
add esp, 0xfffff004
push eax
dec eax
jne 0x4d42bd
mov eax, dword [ebp - 4]
add esp, 0xfffffebc
push ebx
push esi
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404dbc
xor eax, eax
push ebp
push 0x4d4398
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4d8a1c]
mov byte [eax], 0
mov dword [ebx], 0xffffffff
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x154]
call fcn.00403114
mov edx, 1
lea eax, [ebp - 0x154]
call fcn.00403550
call fcn.00402c9c
test eax, eax
jne 0x4d4375
lea eax, [ebp - 8]
push eax
lea edx, [ebp - 0x10145]
mov ecx, 0xfff1
lea eax, [ebp - 0x154]
call fcn.00403264
mov dx, word [ebp - 8]
test dx, dx
jbe 0x4d436f
lea eax, [ebp - 0x10145]
xor ecx, ecx
mov cl, byte [eax]
mov esi, dword [ebx]
and esi, 0xff
xor ecx, esi
mov ecx, dword [ecx*4 + 0x4d7f34]
mov esi, dword [ebx]
shr esi, 8
xor ecx, esi
mov dword [ebx], ecx
inc eax
dec dx
jne 0x4d434b
cmp dword [ebp - 8], 0
jne 0x4d4322
lea eax, [ebp - 0x154]
call fcn.00403284
not dword [ebx]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d439f
lea eax, [ebp - 4]
call fcn.0040490c
ret
Function at 0x1001139d
Capabilities:
Accept command line arguments

Disassembly:
push 8
push 0x10011430
call fcn.1000ed82
xor edi, edi
mov eax, dword [ebp + 0xc]
cmp eax, 1
je 0x100265f7
test eax, eax
je 0x10031507
cmp eax, 2
jne 0x100116c7
push dword [0x100de7cc]
call fcn.1006ca32
pop ecx
test eax, eax
jne 0x1001141b
push 0x3bc
push 1
call fcn.1006ca32
pop ecx
pop ecx
mov esi, eax
test esi, esi
je 0x10031555
push esi
push dword [0x100de7cc]
call fcn.1006ca32
pop ecx
pop ecx
test eax, eax
je 0x10050453
push edi
push esi
call sym.MSVCR120.dll__initptd
pop ecx
pop ecx
call dword [sym.imp.kernel32.dll_GetCurrentThreadId]
mov dword [esi], eax
or dword [esi + 4], 0xffffffff
call fcn.10011398
xor eax, eax
inc eax
call fcn.1000edc7
ret
cmp eax, 3
jne 0x1001141b
push edi
call fcn.1006ca32
pop ecx
jmp 0x1001141b
call fcn.100261c8
test eax, eax
je 0x10031555
call fcn.10026580
test eax, eax
je 0x100503fe
call fcn.10026f4d
test eax, eax
js 0x10050408
call dword [sym.imp.kernel32.dll_GetCommandLineW]
mov dword [sym.MSVCR120.dll__wcmdln], eax
call fcn.1006ca32
jmp 0x100268e4
mov dword [0x100dfbbc], eax
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [sym.MSVCR120.dll__acmdln], eax
call fcn.10026c85
call fcn.10026928
test eax, eax
js 0x1003155c
push edi
call fcn.1006ca32
pop ecx
test eax, eax
jne 0x1003155c
test edi, edi
jne 0x1005040f
inc dword [0x100dfbb8]
jmp 0x1001141b
mov eax, dword [0x100dfbb8]
test eax, eax
jle 0x10031555
dec eax
mov dword [0x100dfbb8], eax
mov dword [ebp - 4], edi
cmp dword [0x100e0418], 0
je 0x10050416
call fcn.10031219
call fcn.10031260
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x10050420
mov dword [ebp - 4], 0xfffffffe
call fcn.1003154c
jmp 0x1001141b
xor eax, eax
jmp 0x10011423
xor edi, edi
inc edi
jmp 0x10026915
call fcn.1009f373
jmp 0x10031555
call fcn.100775db
jmp 0x100503fe
call fcn.1009f9c4
jmp 0x10050408
call sym.MSVCR120.dll__cexit
jmp 0x10031526
call fcn.1009f9c4
call fcn.100775db
call fcn.1009f373
jmp 0x1003153b
push esi
call fcn.1006ca32
pop ecx
jmp 0x10031555
Function at 0x1001f855
Capabilities:
Get common file path
Set current directory
Set environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x100de7b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x21c], 0
push ebx
or ebx, 0xffffffff
push esi
lea esi, [ebp - 0x218]
test eax, eax
je 0x10051169
push edi
push eax
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x1001f921
lea eax, [ebp - 0x218]
push eax
push 0x105
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
cmp edi, 0x104
jg 0x10051186
test edi, edi
je 0x1001f921
movzx eax, word [esi]
cmp eax, 0x5c
je 0x1001f919
cmp eax, 0x2f
je 0x1001f919
push 0x3d
pop eax
mov word [ebp - 0xc], ax
movzx eax, word [esi]
push eax
call fcn.1006ca32
pop ecx
push 0x3a
mov word [ebp - 0xa], ax
pop eax
mov word [ebp - 8], ax
xor eax, eax
mov word [ebp - 6], ax
lea eax, [ebp - 0xc]
push esi
push eax
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableW]
test eax, eax
je 0x1001f921
xor ebx, ebx
cmp dword [ebp - 0x21c], 0
pop edi
jne 0x100511cd
mov ecx, dword [ebp - 4]
mov eax, ebx
pop esi
xor ecx, ebp
pop ebx
call fcn.10010cbc
mov esp, ebp
pop ebp
ret
cmp ax, word [esi + 2]
je 0x1001f8f7
jmp 0x1001f8c6
call dword [sym.imp.kernel32.dll_GetLastError]
jmp 0x100511c1
call sym.MSVCR120.dll___doserrno
and dword [eax], 0
call sym.MSVCR120.dll__errno
mov dword [eax], 0x16
call sym.MSVCR120.dll__invalid_parameter_noinfo
jmp 0x1001f907
lea eax, [edi + 1]
push 2
push eax
call fcn.1006ca32
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x1001f921
mov dword [ebp - 0x21c], 1
test edi, edi
je 0x1001f921
push esi
lea eax, [edi + 1]
push eax
call dword [sym.imp.kernel32.dll_GetCurrentDirectoryW]
mov edi, eax
jmp 0x1001f8b5
push eax
call fcn.1006ca32
pop ecx
jmp 0x1001f8f9
push esi
call fcn.1006ca32
pop ecx
jmp 0x1001f907

Function at 0x1001f985
Capabilities:
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [0x100de7b8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
cmp eax, 1
jl 0x1001f9d8
cmp eax, 0x1a
jg 0x1001f9d8
add eax, 0x40
mov word [ebp - 0xc], ax
push 0x3a
pop eax
mov word [ebp - 0xa], ax
xor eax, eax
mov word [ebp - 8], ax
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
test eax, eax
je 0x100510c2
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10010cbc
mov esp, ebp
pop ebp
ret
call sym.MSVCR120.dll___doserrno
jmp 0x100510d1
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
call fcn.1006ca32
pop ecx
jmp 0x100510e7
mov dword [eax], 0xf
call sym.MSVCR120.dll__errno
mov dword [eax], 0xd
call sym.MSVCR120.dll__invalid_parameter_noinfo
or eax, 0xffffffff
jmp 0x1001f9ca

Function at 0x1002241a
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebx
push esi
push edi
mov ebx, edx
mov edi, 0x811c9dc5
xor esi, esi
movzx eax, byte [esi + ecx]
xor eax, edi
imul edi, eax, 0x1000193
inc esi
cmp esi, 4
jb 0x10022426
mov eax, edi
xor edx, edx
div ebx
pop edi
pop esi
mov eax, edx
pop ebx
ret
Function at 0x10022fe7
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push esi
push edi
push 0x800
push 0
mov esi, 0x10023094
mov ebx, ecx
push esi
call dword [sym.imp.kernel32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x10050052
mov esi, dword [sym.imp.kernel32.dll_GetProcAddress]
push 0x100230b0
push edi
call esi
mov ecx, dword [0x100def00]
push 0x100230c4
xor ecx, eax
push edi
mov dword [ebx], ecx
call esi
mov ecx, dword [0x100def00]
push 0x100230dc
xor ecx, eax
push edi
mov dword [ebx + 4], ecx
call esi
mov ecx, dword [0x100def00]
push 0x100230e8
xor ecx, eax
push edi
mov dword [ebx + 8], ecx
call esi
mov ecx, dword [0x100def00]
push 0x10023100
xor ecx, eax
push edi
mov dword [ebx + 0xc], ecx
call esi
mov ecx, dword [0x100def00]
push 0x10023114
xor ecx, eax
push edi
mov dword [ebx + 0x10], ecx
call esi
mov ecx, dword [0x100def00]
xor ecx, eax
mov dword [ebx + 0x14], ecx
pop edi
pop esi
mov eax, ebx
pop ebx
ret
mov edi, eax
test edi, edi
je 0x10023080
jmp 0x10023009
call dword [sym.imp.kernel32.dll_GetLastError]
cmp eax, 0x57
jne 0x10023080
push esi
call dword [sym.imp.kernel32.dll_LoadLibraryW]
jmp 0x10023086

Function at 0x1002541d
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0x10]
push edi
xor edi, edi
test ebx, ebx
je 0x10050778
push esi
push 0x3bc
push 1
call fcn.1006ca32
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x10050797
call sym.MSVCR120.dll__getptd
push dword [eax + 0x6c]
push esi
call sym.MSVCR120.dll__initptd
mov eax, dword [ebp + 0x14]
or dword [esi + 4], 0xffffffff
mov dword [esi + 0x58], eax
mov eax, dword [ebp + 0x1c]
mov dword [esi + 0x54], ebx
pop ecx
pop ecx
test eax, eax
jne 0x1002546f
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0x18]
push esi
push 0x10025498
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.kernel32.dll_CreateThread]
test eax, eax
je 0x1005078f
pop esi
pop edi
pop ebx
pop ebp
ret
call sym.MSVCR120.dll__errno
mov dword [eax], 0x16
call sym.MSVCR120.dll__invalid_parameter_noinfo
xor eax, eax
jmp 0x1002548e
call dword [sym.imp.kernel32.dll_GetLastError]
mov edi, eax
push esi
call fcn.1006ca32
pop ecx
test edi, edi
je 0x100507a9
push edi
call fcn.1006ca32
pop ecx
xor eax, eax
jmp 0x1002548d