joyce8/EMBER2024-capa huggingface dataset:
Function at 0x453720
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x4c000]
push edi
or ebp, 0xffffffff
jmp 0x453742
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x453749
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x453738
mov eax, 1
add ebx, ebx
jne 0x45375b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x45376c
jne 0x45378b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x45378b
dec eax
add ebx, ebx
jne 0x453778
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x453750
add ebx, ebx
jne 0x453787
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x4537dd
xor ecx, ecx
sub eax, 3
jb 0x4537a3
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x453812
sar eax, 1
mov ebp, eax
jmp 0x4537ae
add ebx, ebx
jne 0x4537ae
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x45377c
inc ecx
add ebx, ebx
jne 0x4537bc
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x45377c
add ebx, ebx
jne 0x4537c9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x4537be
jne 0x4537da
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x4537be
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x4537fc
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x4537ee
jmp 0x45373e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x4537fc
add edi, ecx
jmp 0x45373e
pop esi
mov edi, esi
mov ecx, 0x24
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x45381a
cmp byte [edi], 2
jne 0x45381a
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x45381f
lea edi, [esi + 0x51000]
mov eax, dword [edi]
or eax, eax
je 0x453897
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x53ba0]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x53bdc]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x45384c
mov ecx, edi
jns 0x45387b
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x53be0]
or eax, eax
je 0x453891
mov dword [ebx], eax
add ebx, 4
jmp 0x453869
call dword [esi + 0x53bf0]
mov ebp, dword [esi + 0x53be4]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1e7]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x4538cb
sub esp, 0xffffff80
jmp 0x4013fc
Function at 0x403702
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
cmp dword [ebp + 0xc], 0
jne 0x40371d
call fcn.0040378d
mov dword [ebp + 8], eax
mov dword [ebp - 4], esp
push dword [ebp + 8]
push 0
push 1
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
nop
nop
nop
nop
cmp dword [ebp - 4], esp
je 0x403749
push 6
call fcn.0040870c
add esp, 4
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], esp
push 0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
nop
nop
nop
nop
cmp dword [ebp - 0xc], esp
je 0x403773
push 6
call fcn.0040870c
add esp, 4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
mov eax, 0
sete al
jmp 0x403787
mov esp, ebp
pop ebp
ret 8

Function at 0x408e80
Capabilities:
Get file size
Read file on windows

Disassembly:
mov eax, dword [esp + 8]
push edi
push 0
push 0x20
push 3
push 0
push 3
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x408ee9
push ebx
lea ecx, [esp + 0x10]
push esi
push ecx
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
mov ebx, eax
lea edx, [ebx + 8]
push edx
call fcn.00408870
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
push 0
push eax
lea ecx, [esi + 8]
push ebx
push ecx
push edi
mov dword [esi], 1
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
mov eax, esi
pop esi
pop ebx
pop edi
ret
Function at 0x409330
Capabilities:
Delete directory

Disassembly:
push esi
mov esi, dword [esp + 0xc]
test esi, esi
jne 0x40933d
xor eax, eax
pop esi
ret
push edi
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
pop edi
jne 0x40934f
pop esi
ret
cmp ecx, 1
jne 0x40935d
cmp byte [esi], 0x5c
jne 0x40935d
xor eax, eax
pop esi
ret
push esi
call fcn.004090e0
add esp, 4
test eax, eax
je 0x409371
push esi
call dword [sym.imp.KERNEL32.DLL_RemoveDirectoryA]
pop esi
ret

Function at 0x40b710
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
cmp edx, 1
jle 0x40b72e
push esi
lea ecx, [esp + 0x18]
dec edx
mov esi, dword [ecx]
add ecx, 0xc
xor eax, esi
dec edx
jne 0x40b723
pop esi
ret
Function at 0x401000
Capabilities:
Contain obfuscated stackstrings
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
jmp 0x401021
xor ebx, ebx
mov byte [ebp - 0x1e], 0x6e
mov dword [ebp - 4], ebx
mov byte [ebp - 0x18], 0x6e
mov byte [ebp - 0x1c], 0x43
mov byte [ebp - 0x1f], 0x65
mov byte [ebp - 0x20], 0x6d
mov byte [ebp - 0x11], 0x6f
mov byte [ebp - 0x24], 0x51
mov byte [ebp - 0x16], 0x20
mov byte [ebp - 0x10], 0x77
mov byte [ebp - 0x19], 0x65
mov byte [ebp - 0x15], 0x57
mov byte [ebp - 0x22], 0x6c
mov byte [ebp - 0x17], 0x74
mov byte [ebp - 0x21], 0x65
mov byte [ebp - 0x12], 0x64
mov byte [ebp - 0x23], 0x45
mov byte [ebp - 0x1a], 0x69
mov byte [ebp - 0x1d], 0x74
mov byte [ebp - 0x13], 0x6e
mov byte [ebp - 0x14], 0x69
mov byte [ebp - 0x1b], 0x6c
mov byte [ebp - 0xf], bl
jmp 0x40109c
lea eax, [ebp - 0x24]
push ebx
push eax
call dword [sym.imp.USER32.dll_FindWindowA]
cmp eax, ebx
je 0x4010d0
lea ecx, [ebp - 4]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
cmp dword [ebp - 4], ebx
je 0x4010d0
push dword [ebp - 4]
push 1
push 1
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
push ebx
push eax
call dword [sym.imp.KERNEL32.DLL_TerminateProcess]
pop ebx
leave
ret

Function at 0x401149
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push edi
xor eax, eax
lea edi, [ebp - 0x27]
and dword [ebp - 4], 0
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
lea edi, [ebp - 0x17]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov byte [ebp - 0x28], 0x52
mov byte [ebp - 0x27], 0x65
mov byte [ebp - 0x26], 0x67
mov byte [ebp - 0x25], 0x51
mov byte [ebp - 0x24], 0x75
mov byte [ebp - 0x23], 0x65
mov byte [ebp - 0x22], 0x72
mov byte [ebp - 0x21], 0x79
mov byte [ebp - 0x20], 0x56
mov byte [ebp - 0x1f], 0x61
mov byte [ebp - 0x1e], 0x6c
mov byte [ebp - 0x1d], 0x75
mov byte [ebp - 0x1c], 0x65
mov byte [ebp - 0x1b], 0x45
mov byte [ebp - 0x1a], 0x78
mov byte [ebp - 0x18], 0x41
mov byte [ebp - 0x17], 0x64
mov byte [ebp - 0x16], 0x76
mov byte [ebp - 0x15], 0x61
mov byte [ebp - 0x14], 0x70
mov byte [ebp - 0x13], 0x69
mov byte [ebp - 0x12], 0x33
mov byte [ebp - 0x11], 0x32
mov byte [ebp - 0x10], 0x2e
mov byte [ebp - 0xf], 0x64
mov byte [ebp - 0xe], 0x6c
mov byte [ebp - 0xd], 0x6c
jmp 0x4011ed
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov dword [ebp - 8], eax
jmp 0x40121f
test eax, eax
je 0x40126f
jmp 0x40123d
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [ebp - 8]
mov dword [ebp - 4], eax
jmp 0x40126f
jmp 0x401289
mov eax, dword [ebp - 4]
pop edi
leave
ret
Function at 0x401537
Capabilities:
Extract resource via kernel32 functions
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
jmp 0x40155d
movzx eax, word [ebp + 0x10]
push dword [ebp + 0x14]
push eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_FindResourceA]
mov esi, eax
push esi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_LoadResource]
push eax
mov dword [ebp + 0x10], eax
call dword [sym.imp.KERNEL32.DLL_LockResource]
push esi
mov dword [ebp + 0x14], eax
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.DLL_SizeofResource]
mov esi, eax
xor ebx, ebx
cmp esi, ebx
je 0x4015cd
push ebx
push ebx
push 2
push ebx
push ebx
push 0x40000000
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
cmp edi, ebx
je 0x4015cd
lea eax, [ebp - 4]
push ebx
push eax
push esi
push dword [ebp + 0x14]
push edi
call dword [sym.imp.KERNEL32.DLL_WriteFile]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push 1
pop ebx
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.DLL_FreeResource]
pop edi
mov eax, ebx
pop esi
pop ebx
leave
ret
Function at 0x42023b
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [ebp + 8]
xor edx, edx
push ebx
xor ebx, ebx
mov dword [ebp - 4], edx
push esi
inc ebx
mov dword [ebp - 0x10], edx
push edi
cmp dword [eax + 4], edx
je 0x455d4d
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov byte [eax], dl
mov eax, dword [ebp + 0x10]
mov byte [ecx], dl
mov ecx, dword [ebp + 0x14]
mov dword [edi], edx
mov edi, edx
mov byte [eax], dl
mov dword [ebp - 0xc], 0x2b
mov byte [ecx], dl
mov dword [ebp - 8], 0x23
push edi
mov ecx, esi
call fcn.00407b20
push 0x2b
pop ecx
push 0x5e
movzx eax, word [eax]
cmp ax, cx
pop ecx
push 0x21
pop edx
je 0x455d54
cmp ax, cx
je 0x455d54
cmp ax, dx
je 0x455d54
cmp ax, word [ebp - 8]
je 0x455d54
push edi
inc edi
mov ecx, esi
mov dword [ebp + 0x1c], edi
call fcn.00407b20
mov esi, dword [ebp - 0x10]
mov edi, dword [ebp + 0xc]
movzx eax, word [eax]
cmp eax, 0x7b
jne 0x455dcf
push pe_nt_image_headers32
lea ecx, [ebp - 0x20]
call fcn.00407b76
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp + 8]
push eax
push 0x7d
call fcn.00420352
test al, al
je 0x42034e
push dword [ebp - 0x20]
push dword [esi*4 + 0x4a4cf0]
call fcn.0042313d
pop ecx
pop ecx
test eax, eax
je 0x42031a
inc esi
cmp esi, 0x63
jl 0x4202ff
cmp esi, 0x63
je 0x455d86
cmp byte [esi + 0x4a4c88], 0
jne 0x42034e
movzx eax, byte [esi + str._f_b_b..__reepqrstuvwxyz________t___]
mov dword [edi], eax
lea ecx, [ebp - 0x20]
call fcn.00405a64
and dword [edi], 0xff
mov al, bl
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
xor bl, bl
jmp 0x420335
lea ecx, [ebp - 0x20]
call fcn.00405a64
xor al, al
jmp 0x420345
cmp ax, word [ebp - 0xc]
jne 0x455d5f
mov eax, dword [ebp + 0x10]
jmp 0x455d7e
cmp ax, cx
jne 0x455d69
mov eax, dword [ebp + 0x14]
jmp 0x455d7e
cmp ax, dx
jne 0x455d73
mov eax, dword [ebp + 0x18]
jmp 0x455d7e
push 0x23
pop ecx
cmp ax, cx
jne 0x455d80
mov eax, dword [ebp + 0x1c]
mov byte [eax], bl
inc edi
jmp 0x420287
push 0
lea ecx, [ebp - 0x20]
call fcn.00407b52
movzx eax, word [eax]
push eax
call dword [sym.imp.USER32.dll_VkKeyScanW]
cwde
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x455d45
test eax, 0x200
je 0x455dae
mov ecx, dword [ebp + 0x14]
mov byte [ecx], bl
test eax, 0x400
je 0x455dba
mov ecx, dword [ebp + 0x18]
mov byte [ecx], bl
test eax, 0x100
je 0x420335
mov eax, dword [ebp + 0x10]
mov byte [eax], bl
jmp 0x420335
push eax
call dword [sym.imp.USER32.dll_VkKeyScanW]
cwde
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x455d4d
test eax, 0x200
je 0x455dee
mov ecx, dword [ebp + 0x14]
mov byte [ecx], bl
test eax, 0x400
je 0x455dfa
mov ecx, dword [ebp + 0x18]
mov byte [ecx], bl
test eax, 0x100
je 0x42033d
mov eax, dword [ebp + 0x10]
mov byte [eax], bl
jmp 0x42033d
Function at 0x435ccc
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x4bfd50]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.DLL_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.0042a099
mov dword [ebp - 0x14], eax
cmp dword [0x4c50e8], esi
jne 0x435dbf
push 0x800
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.DLL_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x435d4c
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp eax, 0x57
jne 0x435e9f
push esi
push esi
push str.USER32.DLL
call dword [sym.imp.KERNEL32.DLL_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x435e9f
push str.MessageBoxW
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
test eax, eax
je 0x435e9f
push eax
call ebx
push str.GetActiveWindow
push edi
mov dword [0x4c50e8], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
call ebx
push str.GetLastActivePopup
push edi
mov dword [0x4c50ec], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x4c50f0], eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
call ebx
mov dword [0x4c50f8], eax
test eax, eax
je 0x435dbc
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
push eax
call ebx
mov dword [0x4c50f4], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.DLL_IsDebuggerPresent]
test eax, eax
je 0x435de4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x435dd7
push eax
call dword [sym.imp.KERNEL32.DLL_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x435df9
push 4
pop eax
jmp 0x435ea1
cmp dword [ebp - 0x14], esi
je 0x435df9
push dword [0x4c50e8]
call dword [sym.imp.KERNEL32.DLL_DecodePointer]
push 3
jmp 0x435dde
mov eax, dword [0x4c50f4]
mov ebx, dword [sym.imp.KERNEL32.DLL_DecodePointer]
cmp eax, edi
je 0x435e57
cmp dword [0x4c50f8], edi
je 0x435e57
push eax
call ebx
push dword [0x4c50f8]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x435e57
test eax, eax
je 0x435e57
call ecx
test eax, eax
je 0x435e4c
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x435e4c
test byte [ebp - 8], 1
jne 0x435e57
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x435e87
mov eax, dword [0x4c50ec]
cmp eax, edi
je 0x435e84
push eax
call ebx
test eax, eax
je 0x435e84
call eax
mov esi, eax
test esi, esi
je 0x435e84
mov eax, dword [0x4c50f0]
cmp eax, edi
je 0x435e84
push eax
call ebx
test eax, eax
je 0x435e84
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x4c50e8]
call ebx
test eax, eax
je 0x435e9f
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x435ea1
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042c836
mov esp, ebp
pop ebp
ret
Function at 0x10015057
Capabilities:
Enumerate processes

Disassembly:
push 0x238
mov eax, 0x1002dffa
call fcn.10016e35
mov ebx, dword [ebp + 8]
test ebx, ebx
jne 0x10015074
xor eax, eax
jmp 0x10015151
xor edi, edi
push edi
push 2
call sub.kernel32.dll_CreateToolhelp32Snapshot
mov esi, eax
test esi, esi
je 0x1001514f
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x23c], 0x22c
push eax
push esi
call sub.kernel32.dll_Process32FirstW
jmp 0x10015125
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x244]
call fcn.1000127b
push ebx
lea ecx, [ebp - 0x240]
mov dword [ebp - 4], edi
call fcn.1000127b
lea ecx, [ebp - 0x244]
mov byte [ebp - 4], 1
call fcn.10001cc6
lea ecx, [ebp - 0x240]
call fcn.10001cc6
lea eax, [ebp - 0x244]
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.10028a17
pop ecx
pop ecx
mov ecx, dword [ebp - 0x240]
lea ecx, [ecx - 0x10]
test al, al
jne 0x1001512f
call fcn.10001eb4
mov ecx, dword [ebp - 0x244]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.10001eb4
lea eax, [ebp - 0x23c]
push eax
push esi
call sub.kernel32.dll_Process32NextW
test eax, eax
jne 0x100150a4
jmp 0x10015148
mov edi, dword [ebp - 0x234]
call fcn.10001eb4
mov ecx, dword [ebp - 0x244]
add ecx, 0xfffffff0
call fcn.10001eb4
push esi
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, edi
call fcn.10016ddf
ret

Function at 0x10028a17
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
pushal
call 0x10028a26
pop dword [ebp - 0x38]
mov eax, 0xb717fd74
add eax, 0x58ea8cb2
sub dword [ebp - 0x38], eax
push 0x40
push 0x1000
push 0x3e6c4
push 0
mov eax, sym.imp.kernel32.dll_VirtualAlloc
add eax, dword [ebp - 0x38]
call dword [eax]
mov ecx, 0xd1199bff
sub ecx, 0xd1195b3e
mov ebx, eax
mov edi, 0x1004bc00
add edi, dword [ebp - 0x38]
mov edx, 0xfbeae0d3
sub edx, 0xa5042574
mov esi, dword [edi]
add esi, edx
add dword [ebp - 0x2c], 0x95b7c008
mov dword [ebx], esi
xor dword [ebp - 0xc], edx
add ebx, 0x310ff6f1
add ebx, 0xcef00913
add edi, 0xa47677f7
add edi, 0x5b89880d
loop 0x10028a7a
add eax, 0x23c28bdd
add eax, 0xdc3e69fa
xor ebx, ebx
add ebx, eax
add eax, 0x22efa9e0
add eax, 0xdd105625
mov ecx, 0x10000000
add ecx, dword [ebp - 0x38]
call ebx
leave
ret
Function at 0x403520
Capabilities:
Create directory
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov eax, dword [0x6dc4f0]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x54], ecx
push 0
push str.data
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
push str.data_aiconfig
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov ecx, 0x6ebcc8
call fcn.004073d0
mov ecx, eax
call fcn.00407730
mov word [ebp - 8], ax
movzx eax, word [ebp - 8]
push eax
push str.._data_aiconfig__d.dat
lea ecx, [ebp - 0x50]
push ecx
call fcn.00596934
add esp, 0xc
push 0x5b5684
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 4]
push eax
call fcn.005968ed
add esp, 0xc
cmp dword [ebp - 4], 0
je 0x4035bc
mov ecx, dword [ebp - 4]
push ecx
push 1
push 0x1c64
mov edx, dword [ebp - 0x54]
add edx, 0xec
push edx
call fcn.005967a0
add esp, 0x10
mov eax, dword [ebp - 4]
push eax
call fcn.005965d5
add esp, 4
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0059641f
mov esp, ebp
pop ebp
ret

Function at 0x4035d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x6dc4f0]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x54], ecx
mov ecx, 0x6ebcc8
call fcn.004073d0
mov ecx, eax
call fcn.00407730
mov word [ebp - 8], ax
movzx eax, word [ebp - 8]
push eax
push str.._data_aiconfig__d.dat
lea ecx, [ebp - 0x50]
push ecx
call fcn.00596934
add esp, 0xc
push 0x1c64
push 0
mov edx, dword [ebp - 0x54]
add edx, 0xec
push edx
call fcn.00596250
add esp, 0xc
push 0x5b56b8
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 4]
push ecx
call fcn.005968ed
add esp, 0xc
cmp dword [ebp - 4], 0
je 0x4036b4
mov edx, dword [ebp - 4]
push edx
push 1
push 0x1c64
mov eax, dword [ebp - 0x54]
add eax, 0xec
push eax
call fcn.00596c20
add esp, 0x10
mov ecx, dword [ebp - 4]
push ecx
call fcn.005965d5
add esp, 4
call fcn.004012e0
mov edx, dword [eax + 0x228]
imul edx, edx, 0x64
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x58], 0
fild qword [ebp - 0x5c]
mov eax, dword [ebp - 0x54]
fstp dword [eax + 0xe0]
call fcn.004012e0
mov ecx, dword [eax + 0x22c]
imul ecx, ecx, 0x64
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], 0
fild qword [ebp - 0x64]
mov edx, dword [ebp - 0x54]
fstp dword [edx + 0xe8]
jmp 0x4036bc
mov ecx, dword [ebp - 0x54]
call fcn.004036d0
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.0059641f
mov esp, ebp
pop ebp
ret
Function at 0x410b40
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
mov ecx, 0x6cc9b0
call fcn.0042afe0
mov ebx, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 7
mov dword [0x6ddc54], esi
call ebx
mov edi, eax
push 7
add edi, edi
call ebx
mov esi, eax
push 4
add esi, esi
call ebx
lea ecx, [esi + eax]
mov esi, dword [0x70df94]
xor edx, edx
mov eax, esi
div dword [0x70d520]
mov eax, dword [0x70d524]
mov edx, dword [eax + edx*4]
test edx, edx
je 0x410b9e
cmp dword [edx], esi
je 0x410be5
mov edx, dword [edx + 0xc]
test edx, edx
jne 0x410b93
mov edx, dword [ebp + 8]
push 0
push edx
push 0
push 0
add ecx, 0x300
push ecx
add edi, 0x400
push edi
push 0
push 0x80000000
push 0x2ca0000
push 0x6ddc58
push 0x6dde70
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
mov dword [0x6ddc40], esi
test esi, esi
jne 0x410c04
pop edi
pop esi
pop ebx
pop ebp
ret
mov edx, dword [edx + 4]
test edx, edx
je 0x410b9e
mov eax, dword [ebp + 8]
push 0
push eax
mov eax, dword [edx + 8]
push 0
add eax, ecx
mov ecx, dword [edx + 4]
push 0
push eax
add ecx, edi
push ecx
jmp 0x410bb6
mov eax, dword [ebp + 0xc]
push eax
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push esi
mov ecx, 0x5e1140
call fcn.00412470
cmp dword [0x6cfcf0], 0
push 0
mov ecx, 0x5e1140
push 0
jne 0x410c54
push 1
call fcn.004122b0
pop edi
pop esi
mov eax, 1
pop ebx
pop ebp
ret
push 2
call fcn.004122b0
pop edi
pop esi
mov eax, 1
pop ebx
pop ebp
ret
Function at 0x411440
Capabilities:
Create directory
Delete file
Log keystrokes via application hook

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [sym.imp.USER32.dll_SetWindowsHookExA]
xor ebx, ebx
push ebx
push esi
push 0x410480
push 0xd
call edi
mov dword [0x6de174], eax
mov eax, dword [ebp + 0x10]
mov dword [0x6ddc38], ebx
mov ecx, str.gvkc9jw0ot0Ut
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x411492
test dl, dl
je 0x41148e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x411492
add eax, 2
add ecx, 2
test dl, dl
jne 0x411472
xor eax, eax
jmp 0x411497
sbb eax, eax
sbb eax, 0xffffffff
push ebx
cmp eax, ebx
je 0x4114b8
push str.Error__
push 0x5b5acc
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push esi
push 0x410480
push 0xd
call edi
push str.._Log_Debug.txt
mov dword [0x6de174], eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
push ebx
push 0x5b5ab8
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str._______________________________________________________
push 0x6d8f00
call fcn.00533b50
push str._____________________Client_Start______________________
push 0x6d8f00
call fcn.00533b50
push str._______________________________________________________
push 0x6d8f00
call fcn.00533b50
add esp, 0x18
call fcn.004106e0
mov ecx, 0x6f3fa8
call fcn.00546160
push 0x70d3f2
push 0x6ddc58
call fcn.00596934
push 0x70d3f2
push 0x6dde70
call fcn.00596934
push esi
call fcn.004113e0
add esp, 0x14
mov ecx, 0x6f3fa8
call fcn.005400d0
push str.._Resource_QuestScript_QuestString.bin
mov ecx, 0x6f1ff8
call fcn.004fcfe0
push str.._Resource_QuestScript_QuestScript.bin
mov ecx, 0x6f1ff8
call fcn.004fdb90
push str.._Resource_QuestScript_NewbieGuide.bin
mov ecx, 0x6f1ff8
call fcn.004fbca0
push str.._Resource_QuestScript_QuestNpcList.bin
mov ecx, 0x6f1ff8
call fcn.004fd1b0
mov ecx, 0x6eb6d0
call fcn.00439b60
mov eax, dword [ebp + 0x14]
push eax
push esi
call fcn.00410b40
add esp, 8
test eax, eax
jne 0x4115c6
mov eax, dword [0x6de17c]
cmp eax, ebx
je 0x4115bb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x6de17c], ebx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageA]
push 1
push 0
push 0
push 0
lea ecx, [ebp - 0x1c]
push ecx
call esi
test eax, eax
je 0x4115f8
lea edx, [ebp - 0x1c]
push edx
call edi
lea eax, [ebp - 0x1c]
push eax
call ebx
jmp 0x4115d8
mov ecx, 0x5e1140
call fcn.004127e0
cmp eax, 0xffffffff
jne 0x4115d8
mov eax, dword [0x6de17c]
test eax, eax
je 0x411621
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x6de17c], 0
mov eax, dword [ebp - 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10