joyce8/EMBER2024-capa huggingface dataset:
Function at 0x54bec0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov eax, 0x88
call fcn.004b6100
mov eax, dword [0x60b1e0]
xor eax, esp
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x9c]
push ebx
mov ebx, dword [esp + 0x9c]
push esi
mov esi, dword [esp + 0x94]
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
push edi
mov edi, dword [esp + 0x9c]
je 0x54bf35
cmp ebx, dword [esi]
je 0x54bf2c
test edi, edi
je 0x54bf12
cmp dword [esp + 0xa0], eax
jge 0x54bf2c
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x84]
xor ecx, esp
call fcn.004a5453
add esp, 0x88
ret
mov eax, 1
mov dword [esi], ebx
jmp 0x54bf3b
mov ebx, dword [esi]
test ebx, ebx
je 0x54bf12
test edi, edi
push ebp
je 0x54c00d
push ebx
call fcn.004ea170
mov ebp, eax
add esp, 4
cmp ebp, 0x80
jle 0x54bf6b
push str.j____int_sizeof_ctx__key_
push 0x74
push str..cryptohmachmac.c
call fcn.004e8410
add esp, 0xc
mov eax, dword [esp + 0xa4]
cmp ebp, eax
jge 0x54bfc5
mov ecx, dword [esp + 0x10]
push ecx
lea ebp, [esi + 4]
push ebx
push ebp
call fcn.004e8590
add esp, 0xc
test eax, eax
je 0x54c0c8
mov edx, dword [esp + 0xa4]
push edx
push edi
push ebp
call fcn.004e8740
add esp, 0xc
test eax, eax
je 0x54c0c8
lea edi, [esi + 0x4c]
push edi
lea eax, [esi + 0x50]
push eax
push ebp
call fcn.004e8750
add esp, 0xc
test eax, eax
je 0x54c0c8
jmp 0x54bfea
cmp eax, 0x80
ja 0x54c0c8
push eax
lea ecx, [esi + 0x50]
push edi
push ecx
call fcn.0049ed60
mov edx, dword [esp + 0xb0]
lea edi, [esi + 0x4c]
add esp, 0xc
mov dword [edi], edx
mov edi, dword [edi]
cmp edi, 0x80
je 0x54c015
mov eax, 0x80
sub eax, edi
push eax
lea ecx, [edi + esi + 0x50]
push 0
push ecx
call fcn.0049c520
add esp, 0xc
jmp 0x54c015
test eax, eax
je 0x54c0b4
xor eax, eax
jmp 0x54c020
mov dl, byte [esi + eax + 0x50]
xor dl, 0x36
mov byte [esp + eax + 0x14], dl
add eax, 1
cmp eax, 0x80
jl 0x54c020
mov eax, dword [esp + 0x10]
push eax
lea ebp, [esi + 0x1c]
push ebx
push ebp
call fcn.004e8590
add esp, 0xc
test eax, eax
je 0x54c0c8
push ebx
call fcn.004ea170
push eax
lea ecx, [esp + 0x1c]
push ecx
push ebp
call fcn.004e8740
add esp, 0x10
test eax, eax
je 0x54c0c8
xor eax, eax
jmp 0x54c070
mov dl, byte [esi + eax + 0x50]
xor dl, 0x5c
mov byte [esp + eax + 0x14], dl
add eax, 1
cmp eax, 0x80
jl 0x54c070
mov eax, dword [esp + 0x10]
push eax
lea ebp, [esi + 0x34]
push ebx
push ebp
call fcn.004e8590
add esp, 0xc
test eax, eax
je 0x54c0c8
push ebx
call fcn.004ea170
push eax
lea ecx, [esp + 0x1c]
push ecx
push ebp
call fcn.004e8740
add esp, 0x10
test eax, eax
je 0x54c0c8
lea edx, [esi + 0x1c]
push edx
add esi, 4
push esi
call fcn.004e88e0
add esp, 8
test eax, eax
jne 0x54c0cc
xor eax, eax
jmp 0x54c0d1
mov eax, 1
mov ecx, dword [esp + 0x94]
pop ebp
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a5453
add esp, 0x88
ret
Function at 0x55de50
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
push ebx
push esi
push edi
mov edi, dword [esp + 0x18]
cmp ecx, dword [edi + 4]
jge 0x55de69
mov esi, edi
mov edi, eax
jmp 0x55de6b
mov esi, eax
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x10]
cmp eax, dword [ebx + 8]
jg 0x55de7b
mov eax, ebx
jmp 0x55de85
push eax
push ebx
call fcn.004e0c80
add esp, 8
test eax, eax
jne 0x55de8d
pop edi
pop esi
pop ebx
ret
xor eax, eax
cmp dword [edi + 4], eax
jle 0x55deab
mov edx, dword [esi]
mov ecx, dword [edi]
mov edx, dword [edx + eax*4]
xor edx, dword [ecx + eax*4]
mov ecx, dword [ebx]
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [edi + 4]
jl 0x55de94
cmp eax, dword [esi + 4]
jge 0x55dec2
mov edx, dword [esi]
mov edx, dword [edx + eax*4]
mov ecx, dword [ebx]
mov dword [ecx + eax*4], edx
add eax, 1
cmp eax, dword [esi + 4]
jl 0x55deb0
mov eax, dword [esi + 4]
test eax, eax
mov dword [ebx + 4], eax
jle 0x55dee5
mov ecx, dword [ebx]
lea ecx, [ecx + eax*4 - 4]
mov edx, dword [ecx]
sub ecx, 4
test edx, edx
jne 0x55dee2
sub eax, 1
test eax, eax
jg 0x55ded2
mov dword [ebx + 4], eax
pop edi
pop esi
mov eax, 1
pop ebx
ret
Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x408ecc
mov ecx, 0x4f2434b
nop
nop
nop
test eax, eax
nop
nop
nop
je 0x43004e
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x430024
nop
nop
mov eax, section..data
nop
nop
mov ebx, 0x42e1d0
mov ecx, 0x76c45e58
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x430084
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
nop
add eax, 4
cmp eax, ebx
nop
nop
nop
nop
nop
nop
jne 0x43006c
nop
nop
nop
popal
nop
nop
nop
nop
jmp 0x401219
Function at 0x431003
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
call 0x43100c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x403e6a
sub eax, 0x403e10
nop
nop
nop
nop
nop
mov ebx, dword [eax]
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x431030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
jne 0x43101e
nop
nop
nop
popal
nop
nop
nop
nop
nop
jmp fcn.00401219
Function at 0x430003
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
mov eax, section..00cfg
nop
nop
push 4
nop
nop
nop
nop
nop
nop
nop
nop
pop edi
nop
nop
cmp eax, 0
nop
je 0x430072
nop
nop
nop
nop
mov ebx, 0x408ecc
nop
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
sub ecx, eax
nop
xor edx, edx
nop
nop
nop
nop
nop
nop
push eax
nop
nop
mov eax, ecx
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x18b71276
nop
nop
nop
nop
nop
xor dword [eax], esi
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x430060
nop
nop
nop
mov eax, section..data
nop
cmp eax, 0
nop
nop
nop
nop
nop
nop
je 0x4300d2
nop
mov ebx, 0x42e1d0
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
push eax
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x72637604
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x402760
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push edi
mov edi, dword [esp + 0x10]
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x402779
pop edi
pop ebx
ret
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x4027b4
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ecx, dword [esp + 0x18]
add eax, esi
and ecx, 0xf
jbe 0x4027b0
lea ebx, [ebx]
cmp esi, eax
jae 0x4027b4
sub ecx, 1
movzx edx, word [esi]
lea esi, [esi + edx*2 + 2]
jne 0x4027a0
cmp esi, eax
jb 0x4027ba
pop esi
pop edi
xor eax, eax
pop ebx
ret
mov ax, word [esi]
neg ax
sbb eax, eax
and eax, esi
pop esi
pop edi
pop ebx
ret

Function at 0x403ec0
Capabilities:
Print debug messages

Disassembly:
push 0xffffffffffffffff
push 0x4880a8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push edi
mov eax, dword [0x4bc7b8]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
xor ebp, ebp
xor bl, bl
cmp dword [esi + 8], ebp
je 0x403fa9
cmp dword [esi + 0x40], ebp
jne 0x403f35
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x403f1f
push str.GetPage
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebp
mov dword [esi + 0x40], eax
jne 0x403f30
mov dword [esi], 0x7f
push str.EWSIntf::get_page:_Function_not_found_in_DLL:_GetPage_n
jmp 0x403f2a
mov dword [esi], 6
push str.EWSIntf::get_page:_Attempting_to_lookup_GetPage_with_no_DLL_handle_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [esi + 0x40], ebp
je 0x403fa9
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 0x800
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x38], ebp
call fcn.00403b00
mov edi, dword [esp + 0x18]
mov bl, al
cmp bl, 1
jne 0x403f9c
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esi + 8]
push edi
push eax
mov eax, dword [esi + 0x40]
push ecx
push edx
mov dword [esp + 0x2c], ebp
call eax
test eax, eax
je 0x403f9c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
push edi
call fcn.0040b360
mov bl, 1
cmp edi, ebp
je 0x403fa9
push edi
call fcn.0044ac38
add esp, 4
mov al, bl
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebp
pop ebx
add esp, 0x28
ret 0xc
Function at 0x404220
Capabilities:
Print debug messages

Disassembly:
push ebx
xor bl, bl
cmp dword [esi + 8], 0
je 0x404289
cmp dword [esi + 0x50], 0
jne 0x404267
mov eax, dword [esi + 4]
test eax, eax
je 0x404256
push str.PutPage
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [esi + 0x50], eax
jne 0x404267
mov dword [esi], 0x7f
push str.EWSIntf::put_page:_Function_not_found_in_DLL:_PutPage_n
jmp 0x404261
mov dword [esi], 6
push str.EWSIntf::put_page:_Attempting_to_lookup_PutPage_with_no_DLL_handle_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esi + 0x50]
test eax, eax
je 0x404289
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
push ecx
mov ecx, dword [esp + 0xc]
push edx
mov edx, dword [esi + 8]
push ecx
push edx
call eax
test eax, eax
mov al, 1
jne 0x40428b
mov al, bl
pop ebx
ret 0xc

Function at 0x404290
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x489c38
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
mov eax, dword [0x4bc7b8]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
lea ebx, [esp + 0xc]
call fcn.00404b60
mov dword [esp + 0x30], 0
cmp dword [eax + 0x18], 0x10
jb 0x4042d0
mov eax, dword [eax + 4]
jmp 0x4042d3
add eax, 4
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push ecx
push edx
push eax
call fcn.00404220
cmp dword [esp + 0x24], 0x10
mov bl, al
jb 0x4042f9
mov eax, dword [esp + 0x10]
push eax
call fcn.0044ac38
add esp, 4
mov al, bl
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop ebx
add esp, 0x2c
ret 8

Function at 0x4045d0
Capabilities:
Print debug messages

Disassembly:
push ecx
push ebx
xor ebx, ebx
mov byte [edi], bl
cmp dword [esi + 8], ebx
je 0x404643
cmp dword [esi + 0x60], ebx
jne 0x404618
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x404607
push str.IsWifiScanning
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [esi + 0x60], eax
jne 0x404618
mov dword [esi], 0x7f
push str.EWSIntf::is_scanning:_Function_not_found_in_DLL:_IsWifiScanning_n
jmp 0x404612
mov dword [esi], 6
push str.EWSIntf::is_scanning:_Attempting_to_lookup_IsWifiScanning_with_no_DLL_handle_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esi + 0x60]
cmp eax, ebx
je 0x404643
mov edx, dword [esi + 8]
lea ecx, [esp + 4]
push ecx
push edx
mov dword [esp + 0xc], ebx
call eax
test eax, eax
je 0x404643
mov eax, 1
cmp dword [esp + 4], eax
pop ebx
sete cl
mov byte [edi], cl
pop ecx
ret
mov al, bl
pop ebx
pop ecx
ret
Function at 0x404650
Capabilities:
Print debug messages

Disassembly:
push ebx
push 0x1bde
push 0
push edi
xor bl, bl
call fcn.0046adc0
add esp, 0xc
cmp dword [esi + 8], 0
je 0x4046c4
cmp dword [esi + 0x94], 0
jne 0x4046ad
mov eax, dword [esi + 4]
test eax, eax
je 0x40469c
push str.GetWifiScanResults
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [esi + 0x94], eax
jne 0x4046ad
mov dword [esi], 0x7f
push str.EWSIntf::get_wifi_scan_results:_Function_not_found_in_DLL:_GetWifiScanResults_n
jmp 0x4046a7
mov dword [esi], 6
push str.EWSIntf::get_wifi_scan_results:_Attempting_to_lookup_GetWifiScanResults_with_no_DLL_handle_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esi + 0x94]
test eax, eax
je 0x4046c4
mov ecx, dword [esi + 8]
push edi
push ecx
call eax
test eax, eax
mov al, 1
jne 0x4046c6
mov al, bl
pop ebx
ret

Function at 0x4046d0
Capabilities:
Print debug messages

Disassembly:
push ecx
push ebx
xor ebx, ebx
mov byte [edi], bl
cmp dword [esi + 8], ebx
je 0x404743
cmp dword [esi + 0x64], ebx
jne 0x404718
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x404707
push str.IsWpsRunning
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [esi + 0x64], eax
jne 0x404718
mov dword [esi], 0x7f
push str.EWSIntf::is_wps_running:_Function_not_found_in_DLL:_IsWpsRunning_n
jmp 0x404712
mov dword [esi], 6
push str.EWSIntf::is_wps_running:_Attempting_to_lookup_IsWpsRunning_with_no_DLL_handle_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esi + 0x64]
cmp eax, ebx
je 0x404743
mov edx, dword [esi + 8]
lea ecx, [esp + 4]
push ecx
push edx
mov dword [esp + 0xc], ebx
call eax
test eax, eax
je 0x404743
mov eax, 1
cmp dword [esp + 4], eax
pop ebx
sete cl
mov byte [edi], cl
pop ecx
ret
mov al, bl
pop ebx
pop ecx
ret

Function at 0x404840
Capabilities:
Print debug messages

Disassembly:
push ecx
push ebx
xor ebx, ebx
cmp dword [esi + 8], ebx
je 0x4048bd
cmp dword [esi + 0xd0], ebx
jne 0x40488c
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x40487b
push str.IsWirelessBoardEnabled
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [esi + 0xd0], eax
jne 0x40488c
mov dword [esi], 0x7f
push str.EWSIntf::is_wireless_enabled:_Function_not_found_in_DLL:_IsWirelessBoardEnabled_n
jmp 0x404886
mov dword [esi], 6
push str.EWSIntf::is_wireless_enabled:_Attempting_to_lookup_IsWirelessBoardEnabled_with_no_DLL_handle_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [esi + 0xd0]
cmp eax, ebx
je 0x4048bd
mov edx, dword [esi + 8]
lea ecx, [esp + 4]
push ecx
push edx
mov dword [esp + 0xc], ebx
call eax
test eax, eax
je 0x4048bd
cmp dword [esp + 4], ebx
mov ecx, dword [esp + 0xc]
setne al
mov byte [ecx], al
mov al, 1
pop ebx
pop ecx
ret 4
mov al, bl
pop ebx
pop ecx
ret 4
Function at 0x4049c0
Capabilities:
Print debug messages

Disassembly:
push esi
push 0xc18
call fcn.0044ac3d
mov esi, eax
add esp, 4
test esi, esi
je 0x4049f3
mov ecx, dword [esp + 8]
lea eax, [esp + 0xc]
push eax
push ecx
push 0xc18
push esi
call fcn.00467fe7
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push esi
call fcn.0044ac38
add esp, 4
pop esi
ret

Function at 0x404b60
Capabilities:
Access peb ldr_data
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x489c08
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x20], eax
push esi
push edi
mov eax, dword [0x4bc7b8]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
xor edi, edi
mov eax, edx
mov dword [esp + 0xc], edi
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], edi
mov word [esp + 0x14], di
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x404bb0
sub eax, esi
sar eax, 1
push eax
push edx
lea esi, [esp + 0x18]
call fcn.0040b760
mov eax, esi
push eax
mov esi, ebx
mov dword [esp + 0x3c], edi
call fcn.00404ae0
cmp dword [esp + 0x28], 8
jb 0x404bec
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0044ac38
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x20]
xor ecx, esp
call fcn.004677d8
add esp, 0x30
ret

Function at 0x404c10
Capabilities:
Link many functions at runtime

Disassembly:
push esi
push str.mvhlewsi.dll
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
mov dword [esi + 4], eax
je 0x404cac
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.OpenEWSPort_W
push eax
call edi
mov dword [esi + 0xc], eax
mov eax, dword [esi + 4]
push str.OpenEWSPort_A
push eax
call edi
mov dword [esi + 0x10], eax
mov eax, dword [esi + 4]
push str.OpenEWS_W
push eax
call edi
mov dword [esi + 0x14], eax
mov eax, dword [esi + 4]
push str.OpenEWS_A
push eax
call edi
mov dword [esi + 0x18], eax
mov eax, dword [esi + 4]
push str.CloseEWS
push eax
call edi
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 4]
push str.EWSLastError
push eax
call edi
mov dword [esi + 0x20], eax
mov eax, dword [esi + 4]
push str.WriteEWS
push eax
call edi
mov dword [esi + 0x24], eax
mov eax, dword [esi + 4]
push str.ReadEWS
push eax
call edi
mov dword [esi + 0x28], eax
mov eax, dword [esi + 4]
push str.WriteReadEWS
push eax
call edi
mov dword [esi + 0x2c], eax
pop edi
call fcn.00403d00
pop esi
ret
Function at 0x40bee0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x214
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x20c], eax
push esi
push edi
push str._DownloadFirmware__
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 4
lea eax, [esp + 8]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
call fcn.0040c4f0
push 0x1388
mov esi, eax
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x40bf66
cmp esi, 0x11c1
je 0x40bf66
push esi
push str._FirmwareError_dwStatus_d
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x20c]
xor ecx, esp
call fcn.004677d8
add esp, 0x214
ret
mov ecx, dword [esp + 0x214]
pop edi
pop esi
xor ecx, esp
mov eax, 1
call fcn.004677d8
add esp, 0x214
ret

Function at 0x40c190
Capabilities:
Set file attributes

Disassembly:
sub esp, 0x218
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x210], eax
push ebx
push esi
push edi
push str._DownLoadRequired__
mov dword [esp + 0x10], 0
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 4
push 0x104
lea eax, [esp + 0x14]
push 0
push eax
call fcn.0046adc0
add esp, 0xc
push 0x4c485c
lea ecx, [esp + 0x14]
push 0x104
push ecx
call fcn.0046837e
add esp, 0xc
push 0x80
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [esp + 0xc]
push eax
lea ecx, [esp + 0x14]
call fcn.0040c390
mov ecx, dword [esp + 0x10]
add esp, 4
push ecx
mov esi, eax
push esi
push str.binfileversion_d__fileType_d
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 0xc
test esi, esi
jne 0x40c24a
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.004677d8
add esp, 0x218
ret
call fcn.0040c290
push esi
mov ebx, eax
push ebx
push str.GetFWVersion___d__BinFileVersion___d
call fcn.00426a70
mov edi, eax
call fcn.00426f90
mov ecx, dword [esp + 0x228]
add esp, 0xc
cmp ebx, esi
pop edi
pop esi
sbb eax, eax
pop ebx
xor ecx, esp
neg eax
call fcn.004677d8
add esp, 0x218
ret
Function at 0x40c390
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x3c
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x38], eax
push ebp
mov ebp, dword [esp + 0x44]
push esi
push edi
mov esi, ecx
push esi
push str.GetBinFileVersion_file_s
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
call fcn.00426a70
mov edi, eax
call fcn.00426f90
push 0x29
lea eax, [esp + 0x24]
push 0
push eax
call fcn.0046adc0
add esp, 0x14
push 0x497844
lea ecx, [esp + 0x14]
push esi
push ecx
call fcn.004684be
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x40c424
push eax
push str.__Open_bin_file_failed.__gle_d
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x38]
xor ecx, esp
call fcn.004677d8
add esp, 0x3c
ret
push ecx
push 1
lea edx, [esp + 0x1c]
push 4
push edx
call fcn.004687aa
mov eax, dword [esp + 0x24]
add esp, 0x10
push eax
push str.GetBinFileVersion___filetypeID___x
call fcn.00426a70
mov edi, eax
call fcn.00426f90
mov edx, dword [esp + 0x18]
xor ecx, ecx
cmp dword [esp + 0x1c], 0x544155aa
push 2
sete cl
push 0xffffffffffffffff
push edx
add ecx, 1
mov dword [ebp], ecx
call fcn.0046884c
mov eax, dword [esp + 0x24]
add esp, 0x14
push eax
call fcn.004688d1
mov edx, dword [esp + 0x14]
movsx ecx, al
add esp, 4
push 2
neg ecx
push ecx
push edx
call fcn.0046884c
mov eax, dword [esp + 0x1c]
add esp, 0xc
push eax
push 0x28
lea ecx, [esp + 0x20]
push 1
push ecx
call fcn.004687aa
add esp, 0x10
cmp byte [esp + 0x18], 0
lea eax, [esp + 0x18]
je 0x40c4bb
add eax, 1
cmp byte [eax], 0
jne 0x40c4b3
add eax, 1
push eax
call fcn.004680ef
mov edx, dword [esp + 0x14]
add esp, 4
push edx
mov esi, eax
call fcn.00468a7a
mov ecx, dword [esp + 0x48]
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
xor ecx, esp
call fcn.004677d8
add esp, 0x3c
ret
Function at 0x40c4f0
Capabilities:
Set file attributes

Disassembly:
sub esp, 0x21c
mov eax, dword [0x4bc7b8]
xor eax, esp
mov dword [esp + 0x214], eax
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x206
lea eax, [esp + 0x1e]
push ebx
push eax
or esi, 0xffffffff
mov word [esp + 0x24], bx
call fcn.0046adc0
add esp, 0xc
push str.DownLoadNewFW
mov dword [esp + 0x18], ebx
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 4
push 0x104
lea ecx, [esp + 0x1c]
push ebx
push ecx
call fcn.0046adc0
add esp, 0xc
push 0x4c485c
lea edx, [esp + 0x1c]
push 0x104
push edx
call fcn.0046837e
lea eax, [esp + 0x20]
add esp, 0xc
push eax
lea ecx, [esp + 0x1c]
call fcn.0040c390
mov edi, dword [esp + 0x18]
add esp, 4
sub edi, 1
neg edi
push 0x80
lea ecx, [esp + 0x1c]
sbb edi, edi
push ecx
add edi, 4
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
push ebx
push 3
push ebx
push 1
push SysReAllocStringLen
lea edx, [esp + 0x30]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, esi
jne 0x40c5d2
push str.Failed_to_Open_fw_bin_file
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40c661
cmp dword [0x4c4858], ebx
je 0x40c638
mov dword [esp + 0x14], esi
mov esi, 0x4c3e24
lea ebx, [esp + 0x14]
call fcn.0042dd50
test eax, eax
je 0x40c5f9
mov esi, dword [esp + 0x14]
cmp esi, 0xffffffff
jne 0x40c611
push str.Failed_OpenUSBDevice__
call fcn.00426a70
mov edi, eax
call fcn.00426f90
add esp, 4
xor eax, eax
jmp 0x40c661
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
push edi
push ebp
push esi
call fcn.0040c720
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
add esp, 0xc
push ebp
mov esi, eax
call ebx
mov eax, dword [esp + 0x14]
push eax
call ebx
jmp 0x40c63e
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [0x4c4850], 1
jne 0x40c65f
push edi
mov ecx, ebp
call fcn.00415e70
push ebp
mov esi, eax
call ebx
push 0x2710
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, esi
mov ecx, dword [esp + 0x224]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004677d8
add esp, 0x21c
ret