joyce8/EMBER2024-capa huggingface dataset:
Function at 0x401f20
Capabilities:
Terminate process

Disassembly:
push ebx
push ebp
push esi
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
push edi
mov edi, dword [esp + 0x14]
push 0xc8
push 0x413e40
push 0x67
push edi
call esi
push 0xc8
push 0x413c40
push 0x6d
push edi
call esi
push edi
call fcn.004020a0
mov ebx, dword [esp + 0x20]
add esp, 4
mov esi, ebx
mov eax, str.PnPInstall
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401f84
test cl, cl
je 0x401f80
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401f84
add eax, 2
add esi, 2
test cl, cl
jne 0x401f60
xor eax, eax
jmp 0x401f89
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401fa9
call fcn.004035d0
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
ret 0x10
push 0
push edi
push 0
push 0
push 0
push 0x80000000
push 0
push 0x80000000
push 0xcf0000
push 0x413e40
push 0x413c40
push 0
mov dword [0x413e24], edi
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov ebp, eax
mov esi, ebx
mov dword [0x4135dc], ebp
mov eax, str.dialogs
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x40200e
test cl, cl
je 0x40200a
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x40200e
add eax, 2
add esi, 2
test cl, cl
jne 0x401fea
xor eax, eax
jmp 0x402013
sbb eax, eax
sbb eax, 0xffffffff
xor esi, esi
cmp eax, esi
jne 0x40206b
push esi
push str.INFORMATION
push str.DIALOG_PARAMETER_PASSED_IN
push esi
mov dword [0x4135b8], esi
mov dword [0x4139ec], 1
mov dword [0x4135c0], esi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, 1
mov dword [0x41411c], eax
push ebp
push eax
call fcn.00406170
mov eax, dword [0x41411c]
add esp, 8
inc eax
cmp eax, 0xa
mov dword [0x41411c], eax
jle 0x40204b
push esi
call fcn.00406eb6
call fcn.00405050
mov eax, dword [esp + 0x20]
push eax
push ebx
push edi
call fcn.00402130
add esp, 0xc
test eax, eax
je 0x402091
call fcn.004029c0
push 0x6d
push edi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret 0x10
Function at 0x402130
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x310
push esi
lea eax, [esp + 4]
push edi
push eax
xor edi, edi
push 0x20019
push edi
mov esi, 1
push str.SoftwareLexmarkCustomInstall
push 0x80000002
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], 0x104
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4021b2
lea ecx, [esp + 0x10]
lea edx, [esp + 0x214]
push ecx
mov ecx, dword [esp + 0xc]
lea eax, [esp + 0x10]
push edx
push eax
push edi
push str.Logging
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [esp + 0x214]
push eax
call fcn.00407068
add esp, 4
cmp eax, esi
jne 0x4021b2
mov dword [0x4135c8], esi
mov eax, dword [esp + 0x31c]
push edi
push eax
push edi
push edi
push edi
push 0x80000000
push edi
push 0x80000000
push 0xcf0000
push 0x413e40
push 0x413c40
push edi
mov dword [0x413e24], eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov esi, eax
cmp esi, edi
jne 0x402214
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x18]
push str.InitInstance_Error___Couldnt_create_window:__u
push ecx
call fcn.00406f8b
lea edx, [esp + 0x20]
push edx
call fcn.00406080
add esp, 0x10
xor esi, esi
jmp 0x4022d4
cmp dword [0x413604], edi
jne 0x402257
push str.cfgmgr32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, edi
mov dword [0x413604], eax
jne 0x402257
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x18]
push str.InitInstance_Error:_LoadLibrary__u
push eax
call fcn.00406f8b
lea ecx, [esp + 0x20]
push ecx
call fcn.00406080
add esp, 0x10
xor esi, esi
jmp 0x4022d4
push str.SOFTWARELexmark_
lea edx, [esp + 0x18]
push str.Software_RegKey:__s
push edx
mov dword [0x4135b8], edi
mov dword [0x4135bc], edi
mov dword [0x4135c0], edi
mov dword [0x4135cc], edi
mov dword [0x4135d4], edi
call fcn.00406f8b
lea eax, [esp + 0x20]
push eax
call fcn.00406080
add esp, 0x10
call fcn.00402d30
test eax, eax
je 0x4022a3
xor esi, esi
jmp 0x4022d4
push str.Lexmark_640_Series
call fcn.00405760
mov dword [0x4135d8], eax
call fcn.00403160
mov dword [0x4135d0], eax
call fcn.00404d20
mov ecx, dword [esp + 0x324]
push ecx
push esi
call fcn.00403db0
add esp, 0xc
mov esi, eax
mov eax, dword [0x413604]
cmp eax, edi
je 0x4022e4
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, esi
pop edi
pop esi
add esp, 0x310
ret
Function at 0x402d30
Capabilities:
Persist via run registry key
Query or enumerate registry value

Disassembly:
sub esp, 0xb68
push esi
push str.In_UninstallRan__
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0x104
call fcn.00406080
add esp, 4
lea eax, [esp + 4]
push eax
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
test eax, eax
je 0x402d84
push str.Error:_Couldnt_open_RunOnce
call fcn.00406080
add esp, 4
xor eax, eax
pop esi
add esp, 0xb68
ret
lea ecx, [esp + 8]
lea edx, [esp + 0x468]
push ecx
mov ecx, dword [esp + 8]
lea eax, [esp + 0x10]
push edx
push eax
push 0
push str.LexmarkUninstallRan
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov esi, eax
test esi, esi
jne 0x402eaa
mov edx, dword [esp + 4]
push edi
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [0x413e24]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x26c]
push 0xc8
push eax
push 0x22b
push ecx
call esi
lea edx, [esp + 0x26c]
push str.Hebrew
push edx
call fcn.004071b0
add esp, 8
test eax, eax
je 0x402e16
lea eax, [esp + 0x26c]
push str.Arabic
push eax
call fcn.004071b0
add esp, 8
mov edi, 0x10
test eax, eax
jne 0x402e1b
mov edi, 0x180010
mov edx, dword [0x413e24]
lea ecx, [esp + 0xdc]
push 0xc8
push ecx
push 0x6f
push edx
call esi
mov ecx, dword [0x413e24]
lea eax, [esp + 0x14]
push 0xc8
push eax
push 0x76
push ecx
call esi
mov eax, dword [0x413e24]
lea edx, [esp + 0x1a4]
push 0xc8
push edx
push 0x77
push eax
call esi
lea ecx, [esp + 0x1a4]
lea edx, [esp + 0x14]
push ecx
push edx
lea eax, [esp + 0x778]
push str._s__s
push eax
call fcn.00406f8b
add esp, 0x10
lea ecx, [esp + 0xdc]
lea edx, [esp + 0x770]
push 0
push edi
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxExA]
pop edi
mov eax, 1
pop esi
add esp, 0xb68
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
lea eax, [esp + 0x574]
push str.lRes:__d__GetLastError__:__d
push eax
call fcn.00406f8b
lea ecx, [esp + 0x57c]
push ecx
call fcn.00406080
mov edx, dword [esp + 0x18]
add esp, 0x14
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop esi
add esp, 0xb68
ret
Function at 0x403540
Capabilities:
Copy file

Disassembly:
sub esp, 0x110
lea eax, [esp]
push ebx
push esi
push edi
mov edi, dword [esp + 0x124]
push 0
push eax
push edi
call sub.LZ32.dll_LZOpenFileA
mov esi, eax
cmp esi, 0xffffffff
jne 0x403582
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0xc]
push 0x2000
push ecx
push edi
mov byte [eax + edi - 1], 0x5f
call sub.LZ32.dll_LZOpenFileA
mov esi, eax
mov eax, dword [esp + 0x120]
lea edx, [esp + 0x94]
push 0x1000
push edx
push eax
call sub.LZ32.dll_LZOpenFileA
mov edi, eax
push edi
push esi
call sub.LZ32.dll_LZCopy
push esi
mov ebx, eax
call sub.LZ32.dll_LZClose
push edi
call sub.LZ32.dll_LZClose
xor eax, eax
pop edi
test ebx, ebx
pop esi
pop ebx
setge al
add esp, 0x110
ret
Function at 0x404c20
Capabilities:
Set registry value

Disassembly:
sub esp, 0x408
push ebx
push ebp
push esi
mov esi, dword [esp + 0x424]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov edi, dword [esp + 0x420]
mov ebx, dword [esp + 0x41c]
mov ebp, eax
mov eax, dword [esp + 0x424]
push esi
push eax
push edi
push ebx
lea ecx, [esp + 0x28]
push str.SetStringValue___u___s___s___s_
push ecx
call fcn.00406f8b
lea edx, [esp + 0x30]
push edx
call fcn.00406080
add esp, 0x1c
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0
push 0x20006
push 1
push 0
push 0
push edi
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x404ca6
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x408
ret
mov edx, dword [esp + 0x424]
mov eax, dword [esp + 0x10]
push ebp
push esi
push 1
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [esp + 0x10]
mov esi, eax
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test esi, esi
je 0x404d01
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
push esi
lea edx, [esp + 0x1c]
push str.SetStringValue_error:__u
push edx
call fcn.00406f8b
lea eax, [esp + 0x24]
push eax
call fcn.00406080
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x408
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x408
ret
Function at 0x406020
Capabilities:
Check os version

Disassembly:
sub esp, 0x94
push str.IsWin981stEd
call fcn.00406080
add esp, 4
lea eax, [esp]
mov dword [esp], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 4], 4
jne 0x406076
cmp dword [esp + 8], 0xa
jne 0x406076
cmp word [esp + 0xc], 0x7ce
jne 0x406076
push str.IsWin981stEd____TRUE
call fcn.00406080
add esp, 4
mov eax, 1
add esp, 0x94
ret
xor eax, eax
add esp, 0x94
ret

Function at 0x406080
Capabilities:
Print debug messages

Disassembly:
mov eax, 0x1f50
call fcn.00407240
mov eax, dword [0x4135c8]
push esi
test eax, eax
je 0x406162
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
mov ecx, dword [esp + 0x1f58]
push ecx
call fcn.00407855
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov esi, eax
mov eax, dword [esp + 0x12]
push esi
and edx, 0xffff
push 0x410b20
push edx
mov edx, dword [esp + 0x1a]
and eax, 0xffff
push 0x410b1c
push eax
mov eax, dword [esp + 0x1e]
and ecx, 0xffff
push 0x410b1c
push ecx
and edx, 0xffff
push 0x410b1c
push edx
and eax, 0xffff
push 0x410b1c
push eax
lea ecx, [esp + 0x44]
push str._u_s_u_s_u_s_u_s_u_s_s_n
push ecx
call fcn.00406f8b
add esp, 0x38
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call fcn.00406d6e
push 0x410b00
push str.C:_setuphlp.txt
call fcn.00407928
mov esi, eax
add esp, 0xc
test esi, esi
je 0x406162
lea eax, [esp + 0x14]
push eax
push 0x40f3d8
push esi
call fcn.004078d6
push esi
call fcn.00407880
add esp, 0x10
mov eax, 1
pop esi
add esp, 0x1f50
ret
xor eax, eax
pop esi
add esp, 0x1f50
ret
Function at 0x406900
Capabilities:
Check os version
Create process on windows

Disassembly:
sub esp, 0x8f8
lea eax, [esp + 0x3f4]
push ebx
push esi
push eax
push str.lxdahwd1.exe
xor ebx, ebx
call fcn.00404ee0
add esp, 8
test eax, eax
jne 0x40693b
push str.Failed_to_locate_hardware_1st_module.
call fcn.00406080
add esp, 4
mov eax, ebx
pop esi
pop ebx
add esp, 0x8f8
ret
lea ecx, [esp + 0x2f8]
push ecx
push str.lxdahwd1.ini
call fcn.00404ee0
add esp, 8
test eax, eax
jne 0x40696c
push str.Failed_to_find_hardware_1st_ini.
call fcn.00406080
add esp, 4
mov eax, ebx
pop esi
pop ebx
add esp, 0x8f8
ret
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 0x94
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x1fc]
push str.All__u__u
push edx
call fcn.00406f8b
mov eax, dword [esp + 0x2c]
add esp, 0x10
cmp eax, 4
jne 0x4069ec
cmp dword [esp + 0x20], 0xa
jne 0x4069ec
cmp word [esp + 0x24], 0x7ce
jne 0x4069ec
push ebp
push edi
mov edi, str._1998
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1fc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop ebp
mov eax, dword [esp + 0x908]
mov ecx, dword [esp + 0x904]
push eax
lea edx, [esp + 0x1f8]
push ecx
lea eax, [esp + 0x300]
push edx
lea ecx, [esp + 0x408]
push eax
push ecx
lea edx, [esp + 0x104]
push str._s__F_s__D_s__W_p__P_p
push edx
call fcn.00406f8b
lea eax, [esp + 0x10c]
push eax
call fcn.00406080
add esp, 0x20
lea ecx, [esp + 0xac]
push ecx
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
lea edx, [esp + 8]
lea eax, [esp + 0xac]
push edx
push eax
push 0
push 0
push 0x28
push 0
push 0
lea ecx, [esp + 0x10c]
push 0
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x406aad
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea edx, [esp + 0xf0]
push eax
push edx
lea eax, [esp + 0x508]
push str.Error_launching_szPreInstallCmd:__s._ERROR:__u
push eax
call fcn.00406f8b
lea ecx, [esp + 0x510]
push ecx
call fcn.00406080
add esp, 0x14
mov eax, ebx
pop esi
pop ebx
add esp, 0x8f8
ret
mov edx, dword [esp + 8]
push 0x7530
push edx
call fcn.00406880
add esp, 8
test eax, eax
jne 0x406aca
mov ebx, 1
jmp 0x406af3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x504]
push str.Error_waiting_for_szPreInstallCmd_to_finish._ERROR:__u
push eax
call fcn.00406f8b
lea ecx, [esp + 0x50c]
push ecx
call fcn.00406080
add esp, 0x10
mov edx, dword [esp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call esi
mov eax, dword [esp + 0xc]
push eax
call esi
mov eax, ebx
pop esi
pop ebx
add esp, 0x8f8
ret
Function at 0x406b20
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0xc
push ebx
push esi
push edi
push str.cfgmgr32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
test eax, eax
mov dword [0x413610], eax
je 0x406d1b
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.CM_Locate_DevNodeA
push eax
call esi
mov dword [0x4137d8], eax
mov eax, dword [0x413610]
push str.CM_Get_Child
push eax
call esi
mov ecx, dword [0x413610]
push str.CM_Get_Parent
push ecx
mov dword [0x4139e0], eax
call esi
mov edx, dword [0x413610]
push str.CM_Get_Sibling
push edx
mov dword [0x4139e4], eax
call esi
mov dword [0x4139e8], eax
mov eax, dword [0x413610]
push str.CM_Get_DevNode_Registry_PropertyA
push eax
call esi
mov ecx, dword [0x4137d8]
mov edx, dword [0x4139e0]
mov esi, dword [0x4139e4]
mov edi, dword [0x4139e8]
test ecx, ecx
mov dword [0x4135f4], eax
je 0x406d07
test edx, edx
je 0x406d07
test esi, esi
je 0x406d07
test edi, edi
je 0x406d07
test eax, eax
je 0x406d07
push 0
lea edx, [esp + 0x10]
push 0
push edx
call ecx
test eax, eax
jne 0x406d28
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x4137e0
push 0
push 0xa
push eax
mov dword [esp + 0x2c], 0x200
call dword [0x4135f4]
test eax, eax
jne 0x406c51
mov esi, 0x4137e0
mov eax, edi
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406c48
test cl, cl
je 0x406c44
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406c48
add eax, 2
add esi, 2
test cl, cl
jne 0x406c20
xor eax, eax
jmp 0x406c4d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x406cc4
mov eax, dword [esp + 0xc]
push 0
lea ecx, [esp + 0x14]
push eax
push ecx
call dword [0x4139e0]
test eax, eax
jne 0x406c71
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jmp 0x406bf6
mov edx, dword [esp + 0xc]
push 0
lea eax, [esp + 0x14]
push edx
push eax
call dword [0x4139e8]
test eax, eax
je 0x406cb7
mov ecx, dword [esp + 0xc]
push 0
lea edx, [esp + 0x14]
push ecx
push edx
call dword [0x4139e4]
test eax, eax
jne 0x406ceb
mov eax, dword [esp + 0x10]
push 0
mov dword [esp + 0x10], eax
push eax
lea eax, [esp + 0x18]
push eax
call dword [0x4139e8]
test eax, eax
jne 0x406c87
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], eax
jmp 0x406bf6
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push 0
push ecx
push 0x4137e0
push 0
push 1
push edx
mov dword [esp + 0x2c], 0x200
call dword [0x4135f4]
test eax, eax
jne 0x406d28
mov eax, dword [0x413610]
test eax, eax
je 0x406cfb
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
mov eax, 0x4137e0
pop ebx
add esp, 0xc
ret
push eax
push edi
push esi
push edx
push ecx
push str.cfgmgr32.dll_functions_not_found__x____x____x____x___x_n
call fcn.00401f10
add esp, 0x18
jmp 0x406d28
push str.Cannot_load_cfgmgr32.dll_n
call fcn.00401f10
add esp, 4
mov eax, dword [0x413610]
test eax, eax
je 0x406d38
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0xc
ret
Function at 0x40ad45
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x413110
cmp edx, dword [eax]
je 0x40ad67
add eax, 8
inc ecx
cmp eax, 0x4131a0
jl 0x40ad58
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x413110]
jne 0x40ae95
mov eax, dword [0x41366c]
cmp eax, 1
je 0x40ae6f
test eax, eax
jne 0x40ad98
cmp dword [0x410d14], 1
je 0x40ae6f
cmp edx, 0xfc
je 0x40ae95
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40adcf
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00409ba0
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.00409b20
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x40ae12
lea eax, [ebp - 0x1a4]
push eax
call fcn.00409b20
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x40d5b4
push edi
call fcn.0040b700
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00409ba0
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00409bb0
lea eax, [ebp - 0xa0]
push 0x40d594
push eax
call fcn.00409bb0
push dword [esi + 0x413114]
lea eax, [ebp - 0xa0]
push eax
call fcn.00409bb0
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.0040c0b5
add esp, 0x2c
pop edi
jmp 0x40ae95
lea eax, [ebp + 8]
lea esi, [esi + 0x413114]
push 0
push eax
push dword [esi]
call fcn.00409b20
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret
Function at 0x402de2
Capabilities:
Encrypt data using tea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0x1c], 0x9e3779b9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], 0x20
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
test eax, eax
jle 0x402e97
mov edx, dword [ebp - 8]
sub edx, 0x61c88647
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x20]
shl eax, 4
add eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 8]
xor eax, ecx
mov edx, dword [ebp - 0x20]
shr edx, 5
add edx, dword [ebp - 0xc]
xor eax, edx
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
shl edx, 4
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 8]
xor edx, eax
mov ecx, dword [ebp - 0x18]
shr ecx, 5
add ecx, dword [ebp - 0x14]
xor edx, ecx
mov eax, dword [ebp - 0x20]
add eax, edx
mov dword [ebp - 0x20], eax
jmp 0x402e31
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 4], ecx
mov esp, ebp
pop ebp
ret
Function at 0x402eac
Capabilities:
Decrypt data using tea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0x1c], 0x9e3779b9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], 0xc6ef3720
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], 0x20
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
test eax, eax
jle 0x402f60
mov edx, dword [ebp - 0x18]
shl edx, 4
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 8]
xor edx, eax
mov ecx, dword [ebp - 0x18]
shr ecx, 5
add ecx, dword [ebp - 0x14]
xor edx, ecx
mov eax, dword [ebp - 0x20]
sub eax, edx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
shl ecx, 4
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 8]
xor ecx, edx
mov eax, dword [ebp - 0x20]
shr eax, 5
add eax, dword [ebp - 0xc]
xor ecx, eax
mov edx, dword [ebp - 0x18]
sub edx, ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 8]
add eax, 0x61c88647
mov dword [ebp - 8], eax
jmp 0x402efb
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 4], ecx
mov esp, ebp
pop ebp
ret
Function at 0x40317b
Capabilities:
Encrypt data using tea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0x1c], 0x9e3779b9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], 0x20
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
test eax, eax
jle 0x403230
mov edx, dword [ebp - 8]
sub edx, 0x61c88647
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x20]
shl eax, 4
add eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 8]
xor eax, ecx
mov edx, dword [ebp - 0x20]
shr edx, 5
add edx, dword [ebp - 0xc]
xor eax, edx
mov ecx, dword [ebp - 0x18]
add ecx, eax
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x18]
shl edx, 4
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 8]
xor edx, eax
mov ecx, dword [ebp - 0x18]
shr ecx, 5
add ecx, dword [ebp - 0x14]
xor edx, ecx
mov eax, dword [ebp - 0x20]
add eax, edx
mov dword [ebp - 0x20], eax
jmp 0x4031ca
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 4], ecx
mov esp, ebp
pop ebp
ret
Function at 0x403245
Capabilities:
Decrypt data using tea

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0x1c], 0x9e3779b9
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 8], 0xc6ef3720
mov dword [ebp - 0x24], 0x20
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 8]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
sub ecx, 1
mov dword [ebp - 0x24], ecx
test eax, eax
jle 0x4032f9
mov edx, dword [ebp - 0x18]
shl edx, 4
add edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
add eax, dword [ebp - 8]
xor edx, eax
mov ecx, dword [ebp - 0x18]
shr ecx, 5
add ecx, dword [ebp - 0x14]
xor edx, ecx
mov eax, dword [ebp - 0x20]
sub eax, edx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
shl ecx, 4
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 8]
xor ecx, edx
mov eax, dword [ebp - 0x20]
shr eax, 5
add eax, dword [ebp - 0xc]
xor ecx, eax
mov edx, dword [ebp - 0x18]
sub edx, ecx
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 8]
add eax, 0x61c88647
mov dword [ebp - 8], eax
jmp 0x403294
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x18]
mov dword [ecx], edx
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x20]
mov dword [eax + 4], ecx
mov esp, ebp
pop ebp
ret