joyce8/EMBER2024-capa huggingface dataset:
Function at 0x453642
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x40], 0
jmp 0x45365d
mov eax, dword [ebp - 0x40]
add eax, 1
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 7
jge 0x4536af
push 0x3c
push 0
lea ecx, [ebp - 0x3c]
push ecx
call fcn.004adbd0
add esp, 0xc
mov edx, dword [ebp - 0x40]
add edx, 1
push edx
push str.ITEM_d
lea eax, [ebp - 0x3c]
push eax
call fcn.004ae0dd
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
push 0
lea edx, [ebp - 0x3c]
push edx
push str.QCCHECK
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x44]
mov dword [edx + ecx*4 + 0x778], eax
jmp 0x453654
push 0x58
push 0
mov eax, dword [ebp - 0x44]
add eax, 0x794
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
push 0x29
mov edx, dword [ebp - 0x44]
add edx, 0x794
push edx
push 0
push str.MODELNAME
push 0x51b1e0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp + 8]
push eax
push 0x15
mov ecx, dword [ebp - 0x44]
add ecx, 0x7bd
push ecx
push 0
push 0x51b1ec
push 0x51b1f0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp + 8]
push edx
push 9
mov eax, dword [ebp - 0x44]
add eax, 0x7d2
push eax
push 0
push str.FWVERSION
push 0x51b208
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp + 8]
push ecx
push 0
push str.BADBLOCK
push 0x51b220
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x44]
mov dword [edx + 0x7e0], eax
mov eax, dword [ebp + 8]
push eax
push 0
push str.SATASPEED
push 0x51b238
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x7e4], eax
mov edx, dword [ebp + 8]
push edx
push 0
push str.DISKSIZETYPE
push 0x51b254
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x44]
mov byte [ecx + 0x7db], al
mov edx, dword [ebp + 8]
push edx
push 0
push str.CAPACITY
push 0x51b26c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x7dc], eax
mov edx, dword [ebp + 8]
push edx
push 0
push 0x51b278
push str.QCCONFIG
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x7e8], eax
mov esp, ebp
pop ebp
ret 4
Function at 0x460e8c
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0
jmp 0x460ea2
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 8
jge 0x460ebd
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax*4 + 0x4f118c]
mov dword [edx + ecx*4], eax
jmp 0x460e99
mov esp, ebp
pop ebp
ret
Function at 0x46719b
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
jmp 0x4671c4
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0x40
jae 0x4672d2
mov ecx, dword [ebp - 0x48]
push ecx
push 0x522b74
lea edx, [ebp - 0x44]
push edx
call fcn.004ae0dd
add esp, 0xc
mov eax, dword [ebp - 0x50]
add eax, 0x8ec
push eax
push 0x40
lea ecx, [ebp - 0x40]
push ecx
push 0
lea edx, [ebp - 0x44]
push edx
push 0x522b78
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x467211
jmp 0x4672d2
push str.0_255
lea eax, [ebp - 0x40]
push eax
call fcn.004aea30
add esp, 8
test eax, eax
jne 0x46723c
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov dword [edx + ecx*4 + 0x10d8], 0x100
jmp 0x4672cd
push 0x522b90
lea eax, [ebp - 0x40]
push eax
call fcn.004aea30
add esp, 8
test eax, eax
jne 0x467264
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov dword [edx + ecx*4 + 0x10d8], 0x101
jmp 0x4672cd
push 0x522b9c
lea eax, [ebp - 0x40]
push eax
call fcn.004aea30
add esp, 8
test eax, eax
jne 0x46728c
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov dword [edx + ecx*4 + 0x10d8], 0x102
jmp 0x4672cd
push 0x522ba8
lea eax, [ebp - 0x40]
push eax
call fcn.004aea30
add esp, 8
test eax, eax
jne 0x4672b4
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov dword [edx + ecx*4 + 0x10d8], 0x103
jmp 0x4672cd
lea eax, [ebp - 0x40]
push eax
call fcn.00495bcd
add esp, 4
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x50]
mov dword [edx + ecx*4 + 0x10d8], eax
jmp 0x4671bb
mov esp, ebp
pop ebp
ret
Function at 0x48cd40
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov dword [ebp - 0x110], ecx
mov eax, dword [ebp - 0x110]
add eax, 0x4dc
push eax
push 0
push str.ENABLEAUTOTEST
push 0x528564
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0xcfc], eax
cmp dword [0x52df00], 0
jne 0x48cd94
cmp dword [0x52defc], 0
jne 0x48cd94
cmp dword [0x52dc10], 0
je 0x48cdbd
mov edx, dword [ebp - 0x110]
mov dword [edx + 0xcfc], 0
push 0
push 0x54f
mov ecx, dword [ebp - 0x110]
call fcn.004d14d4
mov ecx, eax
call fcn.004d18f2
mov eax, dword [ebp - 0x110]
mov ecx, dword [eax + 0xcfc]
push ecx
push 0x54f
mov ecx, dword [ebp - 0x110]
call fcn.004d14d4
mov ecx, eax
call fcn.00404c60
mov ecx, dword [ebp - 0x110]
call fcn.0048c821
mov dword [ebp - 0x108], 1
jmp 0x48ce07
mov edx, dword [ebp - 0x108]
add edx, 1
mov dword [ebp - 0x108], edx
cmp dword [ebp - 0x108], 0x11
jge 0x48ce95
push 0x104
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x108]
push ecx
push str.InitialPort_d
lea edx, [ebp - 0x104]
push edx
call fcn.004ae0dd
add esp, 0xc
mov eax, dword [ebp - 0x110]
add eax, 0x4dc
push eax
push 1
lea ecx, [ebp - 0x104]
push ecx
push 0x52857c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x10c], eax
mov edx, dword [ebp - 0x10c]
push edx
mov eax, dword [ebp - 0x108]
add eax, 0x608
push eax
mov ecx, dword [ebp - 0x110]
call fcn.004d14d4
mov ecx, eax
call fcn.00404c60
jmp 0x48cdf8
mov ecx, dword [ebp - 0x110]
add ecx, 0x4dc
push ecx
push 0x14
push str.MinProgSpeed
push 0x528594
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x110]
mov dword [edx + 0x2098], eax
push 0x104
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x110]
mov edx, dword [ecx + 0x2098]
push edx
push 0x52859c
lea eax, [ebp - 0x104]
push eax
call fcn.004ae0dd
add esp, 0xc
lea ecx, [ebp - 0x104]
push ecx
push 0x898
mov ecx, dword [ebp - 0x110]
call fcn.004d15fd
cmp dword [0x52dbe0], 0
je 0x48cf42
mov edx, dword [ebp - 0x110]
add edx, 0x4dc
push edx
push 0
push 0x5285a0
push 0x5285b4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x110]
mov dword [ecx + 0x20a4], eax
mov edx, dword [ebp - 0x110]
mov eax, dword [edx + 0x20a4]
push eax
push 0x418
mov ecx, dword [ebp - 0x110]
call fcn.004d14d4
mov ecx, eax
call fcn.00404c60
mov ecx, dword [ebp - 0x110]
call fcn.004952c8
mov esp, ebp
pop ebp
ret
Function at 0x48cf95
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x51c
mov dword [ebp - 0x51c], ecx
push 0x104
push 0
lea eax, [ebp - 0x208]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x51c]
add ecx, 0x2d4
push ecx
lea edx, [ebp - 0x208]
push edx
call fcn.004ade30
add esp, 8
push 0x104
push 0
lea eax, [ebp - 0x518]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp + 0xc]
push ecx
push str.Config_s.ini
lea edx, [ebp - 0x518]
push edx
call fcn.004ae0dd
add esp, 0xc
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x208]
push ecx
call fcn.004ade40
add esp, 8
push 0x104
push 0
lea edx, [ebp - 0x30c]
push edx
call fcn.004adbd0
add esp, 0xc
lea eax, [ebp - 0x208]
push eax
push 0x104
lea ecx, [ebp - 0x30c]
push ecx
push 0
push str.FLASHNAME
push 0x5285d8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x104
push 0
lea edx, [ebp - 0x414]
push edx
call fcn.004adbd0
add esp, 0xc
lea eax, [ebp - 0x208]
push eax
push 0
push str.RDTTEST
push 0x5285e8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x310], eax
cmp dword [ebp - 0x310], 0
je 0x48d0d7
cmp dword [0x52d238], 0x979
jne 0x48d0b5
push str.ISP2258RDT.bin
lea ecx, [ebp - 0x414]
push ecx
call fcn.004ade30
add esp, 8
jmp 0x48d0d5
cmp dword [0x52d238], 0x97a
jne 0x48d0d5
push str.ISP2256RDT.bin
lea edx, [ebp - 0x414]
push edx
call fcn.004ade30
add esp, 8
jmp 0x48d119
cmp dword [0x52d238], 0x979
jne 0x48d0f9
push str.ISP2258.bin
lea eax, [ebp - 0x414]
push eax
call fcn.004ade30
add esp, 8
jmp 0x48d119
cmp dword [0x52d238], 0x97a
jne 0x48d119
push str.ISP2256.bin
lea ecx, [ebp - 0x414]
push ecx
call fcn.004ade30
add esp, 8
lea edx, [ebp - 0x30c]
push edx
push str.________________________Current_Parameter_setting__r_nFlash:____s_r_n
mov eax, dword [ebp + 8]
push eax
call fcn.004ae0dd
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x104]
push ecx
call fcn.004adbd0
add esp, 0xc
lea edx, [ebp - 0x414]
push edx
push str.Firmware:____s_n
lea eax, [ebp - 0x104]
push eax
call fcn.004ae0dd
add esp, 0xc
lea ecx, [ebp - 0x104]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004ade40
add esp, 8
mov esp, ebp
pop ebp
ret 8
Function at 0x48db92
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
mov dword [ebp - 0x108], ecx
push 0x104
push 0
mov eax, dword [ebp - 0x108]
add eax, 0x15cc
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x108]
add ecx, 0x6e4
push ecx
push 0x104
mov edx, dword [ebp - 0x108]
add edx, 0x15cc
push edx
push 0
push str.MESLOGDIR
push 0x528824
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x108]
movsx ecx, byte [eax + 0x15cc]
test ecx, ecx
jne 0x48dc39
mov edx, dword [ebp - 0x108]
add edx, 0x2d4
push edx
mov eax, dword [ebp - 0x108]
add eax, 0x15cc
push eax
call fcn.004ade30
add esp, 8
push str.Log_file
mov ecx, dword [ebp - 0x108]
add ecx, 0x15cc
push ecx
call fcn.004ade40
add esp, 8
push 0x104
push 0
lea edx, [ebp - 0x104]
push edx
call fcn.004adbd0
add esp, 0xc
mov eax, dword [ebp - 0x108]
xor ecx, ecx
mov cx, word [eax + 0x2088]
push ecx
mov edx, dword [ebp - 0x108]
xor eax, eax
mov ax, word [edx + 0x2084]
push eax
mov ecx, dword [ebp - 0x108]
xor edx, edx
mov dx, word [ecx + 0x2082]
push edx
push str._04d_02d_02d_000.txt
lea eax, [ebp - 0x104]
push eax
call fcn.004ae0dd
add esp, 0x14
push 0x52884c
mov ecx, dword [ebp - 0x108]
add ecx, 0x15cc
push ecx
call fcn.004ade40
add esp, 8
lea edx, [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x108]
add eax, 0x15cc
push eax
call fcn.004ade40
add esp, 8
mov ecx, dword [ebp - 0x108]
mov dword [ecx + 0x15c8], 0
mov esp, ebp
pop ebp
ret
Function at 0x48f62f
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc18
mov dword [ebp - 0xc14], ecx
mov eax, 1
test eax, eax
je 0x48f653
mov dword [ebp - 0xc18], 0
jmp 0x48f666
push str._TCPIP_:_Report_BadCnt_Result_n
call fcn.004110a0
add esp, 4
mov dword [ebp - 0xc18], eax
mov dword [ebp - 0x810], 1
jmp 0x48f681
mov ecx, dword [ebp - 0x810]
add ecx, 1
mov dword [ebp - 0x810], ecx
mov edx, dword [ebp - 0xc14]
xor eax, eax
mov al, byte [edx + 0x1564]
add eax, 1
cmp dword [ebp - 0x810], eax
jge 0x48f823
push 0x800
push 0
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004adbd0
add esp, 0xc
push str._TEST_ACK
lea edx, [ebp - 0x80c]
push edx
call fcn.004ade30
add esp, 8
push 0xa
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0xc14]
mov edx, dword [ecx + 0x1560]
push edx
push 0x528d34
lea eax, [ebp - 0xc]
push eax
call fcn.004ae0dd
add esp, 0xc
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 0x80c]
push edx
call fcn.004ade40
add esp, 8
push 0xa
push 0
lea eax, [ebp - 0xc]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x810]
push ecx
push str.__02d
lea edx, [ebp - 0xc]
push edx
call fcn.004ae0dd
add esp, 0xc
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ade40
add esp, 8
mov edx, dword [ebp - 0x810]
mov eax, dword [ebp - 0xc14]
cmp dword [eax + edx*4 + 0x1578], 0
je 0x48f770
push str._FFFF
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ade40
add esp, 8
jmp 0x48f7b5
push 0x400
push 0
lea edx, [ebp - 0xc10]
push edx
call fcn.004adbd0
add esp, 0xc
lea eax, [ebp - 0xc10]
push eax
mov ecx, dword [ebp - 0x810]
push ecx
mov ecx, dword [ebp - 0xc14]
call fcn.0048f844
lea edx, [ebp - 0xc10]
push edx
lea eax, [ebp - 0x80c]
push eax
call fcn.004ade40
add esp, 8
push 0x528d4c
lea ecx, [ebp - 0x80c]
push ecx
call fcn.004ade40
add esp, 8
lea edx, [ebp - 0x80c]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0
lea eax, [ebp - 0x80c]
push eax
call fcn.004aeac0
add esp, 4
push eax
lea ecx, [ebp - 0x80c]
push ecx
mov ecx, dword [ebp - 0xc14]
add ecx, 0x1318
mov edx, dword [ebp - 0xc14]
mov eax, dword [edx + 0x1318]
call dword [eax + 0x18]
push 1
lea ecx, [ebp - 0x80c]
push ecx
mov ecx, dword [ebp - 0xc14]
call fcn.0048ee97
jmp 0x48f672
mov edx, dword [ebp - 0xc14]
mov dword [edx + 0x15bc], 0
mov eax, dword [ebp - 0xc14]
mov byte [eax + 0x1564], 0
mov esp, ebp
pop ebp
ret
Function at 0x492a82
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ea40f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0x28]
call fcn.004048b0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x30]
add eax, 0x6e4
push eax
push 0
push str.ENSNINDICATOR
push 0x5294f4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x2524], eax
mov edx, dword [ebp - 0x30]
cmp dword [edx + 0x2524], 0
je 0x492c07
push 0x44
push 0
mov eax, dword [ebp - 0x30]
add eax, 0x2528
push eax
call fcn.004adbd0
add esp, 0xc
push 0x165
push 0
mov ecx, dword [ebp - 0x30]
add ecx, 0x256c
push ecx
call fcn.004adbd0
add esp, 0xc
mov dword [ebp - 0x2c], 0
jmp 0x492b23
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x10
jge 0x492c07
push 0x15
push 0
lea eax, [ebp - 0x24]
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x2c]
add ecx, 1
push ecx
push str.PHYSICALDRIVE_d
lea edx, [ebp - 0x28]
push edx
call fcn.004c7e32
add esp, 0xc
mov eax, dword [ebp - 0x30]
add eax, 0x6e4
push eax
push 0x15
lea ecx, [ebp - 0x24]
push ecx
push 0x529510
lea ecx, [ebp - 0x28]
call fcn.004048d0
push eax
push str.SNINDICATOR
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov dword [eax + edx*4 + 0x252c], 1
push str.DEFAULT
lea ecx, [ebp - 0x24]
push ecx
call fcn.004aea30
add esp, 8
test eax, eax
jne 0x492bb6
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
mov dword [eax + edx*4 + 0x252c], 0
jmp 0x492c02
movsx ecx, byte [ebp - 0x24]
test ecx, ecx
jne 0x492be0
push 0x14
push 0x20
mov edx, dword [ebp - 0x2c]
add edx, 1
imul edx, edx, 0x15
mov eax, dword [ebp - 0x30]
lea ecx, [eax + edx + 0x256c]
push ecx
call fcn.004adbd0
add esp, 0xc
jmp 0x492c02
push 0x14
lea edx, [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x2c]
add eax, 1
imul eax, eax, 0x15
mov ecx, dword [ebp - 0x30]
lea edx, [ecx + eax + 0x256c]
push edx
call fcn.004ae270
add esp, 0xc
jmp 0x492b1a
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.004d2261
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret

Function at 0x49397d
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
mov dword [ebp - 0x20c], ecx
cmp dword [0x52d1b4], 0
je 0x493a1d
push 0x104
push 0
lea eax, [ebp - 0x104]
push eax
call fcn.004adbd0
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x208]
push ecx
call fcn.004adbd0
add esp, 0xc
push str.C:SMI_Port_InfoBypassVol.map
lea edx, [ebp - 0x104]
push edx
call fcn.004ade30
add esp, 8
lea eax, [ebp - 0x104]
push eax
push 0x104
lea ecx, [ebp - 0x208]
push ecx
push 0x52e430
push 0x529784
push 0x529788
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0
push 5
lea edx, [ebp - 0x208]
push edx
mov ecx, dword [ebp - 0x20c]
add ecx, 0xd4
call fcn.00495760
mov esp, ebp
pop ebp
ret
Function at 0x49504e
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 0x28], ecx
push 0x208
push 0
mov eax, dword [ebp - 0x28]
add eax, 0x22b8
push eax
call fcn.004adbd0
add esp, 0xc
mov ecx, dword [ebp - 0x28]
add ecx, 0x2d4
push ecx
mov edx, dword [ebp - 0x28]
add edx, 0x22b8
push edx
call fcn.004ade30
add esp, 8
push str.Layout.set
mov eax, dword [ebp - 0x28]
add eax, 0x22b8
push eax
call fcn.004ade40
add esp, 8
push 0x22
push 0
mov ecx, dword [ebp - 0x28]
add ecx, 0x24c0
push ecx
call fcn.004adbd0
add esp, 0xc
mov edx, dword [ebp - 0x28]
add edx, 0x22b8
push edx
push 0
push str.PackageNo
push 0x529974
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x28]
mov byte [ecx + 0x24c1], al
mov edx, dword [ebp - 0x28]
add edx, 0x22b8
push edx
push 2
push str.CeNoByPackage
push 0x52998c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x28]
mov byte [ecx + 0x24c0], al
mov dword [ebp - 0x20], 0
jmp 0x495113
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x10
jge 0x4951be
mov dword [ebp - 0x24], 0
jmp 0x49512f
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 2
jge 0x4951b9
push 0xa
push 0
lea ecx, [ebp - 0xc]
push ecx
call fcn.004adbd0
add esp, 0xc
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x20]
add eax, 1
push eax
push str.F_d__d
lea ecx, [ebp - 0xc]
push ecx
call fcn.004ae0dd
add esp, 0x10
mov edx, dword [ebp - 0x28]
add edx, 0x22b8
push edx
push 0xa
lea eax, [ebp - 0x18]
push eax
push 0
lea ecx, [ebp - 0xc]
push ecx
push str.LAYOUT
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsx edx, byte [ebp - 0x18]
test edx, edx
je 0x4951b4
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x18]
push ecx
call fcn.00495a59
add esp, 8
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
lea ecx, [eax + edx*2]
mov edx, dword [ebp - 0x28]
mov al, byte [ebp - 0x1c]
mov byte [edx + ecx + 0x24c2], al
jmp 0x495126
jmp 0x49510a
mov ecx, dword [ebp - 0x28]
call fcn.004951ca
mov esp, ebp
pop ebp
ret
Function at 0x497681
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov dword [ebp - 0x220], 0
cmp dword [ebp + 8], 0xffffffff
jne 0x4976ac
push str._Send_Genesys_ScanDevice_:_CreateHandle_failed
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
jmp 0x497798
push 0x200
push 0
lea eax, [ebp - 0x200]
push eax
call fcn.004adbd0
add esp, 0xc
push 0x10
push 0
lea ecx, [ebp - 0x210]
push ecx
call fcn.004adbd0
add esp, 0xc
mov byte [ebp - 0x210], 0xf8
mov byte [ebp - 0x20f], 0xff
mov byte [ebp - 0x205], 1
mov edx, dword [ebp + 8]
push edx
push 0x1e
lea eax, [ebp - 0x200]
push eax
push 0x200
push 0x10
lea ecx, [ebp - 0x210]
push ecx
lea edx, [ebp - 0x21c]
push edx
call fcn.0049ecf3
add esp, 0x1c
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x497796
mov eax, dword [ebp - 0x180]
and eax, 0xff
cmp eax, 0x53
jne 0x497796
mov ecx, dword [ebp - 0x17f]
and ecx, 0xff
cmp ecx, 0x4d
jne 0x497796
mov edx, dword [ebp - 0x17e]
and edx, 0xff
cmp edx, 0x49
jne 0x497796
cmp dword [ebp + 0x10], 0x200
ja 0x497777
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 0x200]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.004ae270
add esp, 0xc
jmp 0x49778f
push 0x200
lea eax, [ebp - 0x200]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004ae270
add esp, 0xc
mov eax, 1
jmp 0x497798
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x497eae
Capabilities:
Unmount volume via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x108
push 0x104
push 0
lea eax, [ebp - 0x108]
push eax
call fcn.004adbd0
add esp, 0xc
cmp dword [0x52d1d4], 0
je 0x497f1d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx*4 + 0x52e69c]
push edx
lea eax, [ebp - 0x108]
push eax
call fcn.0049834b
add esp, 8
test eax, eax
jne 0x497f1b
mov ecx, dword [ebp + 8]
sub ecx, 1
imul ecx, ecx, 0xff
add ecx, 0x52eb58
push ecx
push 0x529da0
lea edx, [ebp - 0x108]
push edx
call fcn.004ae0dd
add esp, 0xc
jmp 0x497f6c
mov eax, dword [ebp + 8]
movsx ecx, byte [eax + 0x52e718]
cmp ecx, 0x43
jl 0x497f4d
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x52e718]
push eax
push 0x529da4
lea ecx, [ebp - 0x108]
push ecx
call fcn.004ae0dd
add esp, 0xc
jmp 0x497f6c
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x52e718]
push eax
push 0x529dac
lea ecx, [ebp - 0x108]
push ecx
call fcn.004ae0dd
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov dword [edx], 0xffffffff
push 0
push 0
push 3
push 0
push 3
push 0xc0000000
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov edx, dword [ebp + 0xc]
cmp dword [edx], 0xffffffff
jne 0x497fa2
xor eax, eax
jmp 0x498002
cmp dword [ebp + 0x10], 0
jne 0x497faf
mov eax, 1
jmp 0x498002
push 0
lea eax, [ebp - 4]
push eax
push 0
push 0
push 0
push 0
push 0x90018
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push edx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [ebp + 8]
xor ecx, ecx
mov cl, byte [eax + 0x52e6e0]
cmp ecx, 1
jne 0x497ffd
push 0
lea edx, [ebp - 4]
push edx
push 0
push 0
push 0
push 0
push 0x90020
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x498236
Capabilities:
Get disk information via ioctl

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 4], 0
push 0
push 0
push 3
push 0
push 3
push 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x4982ac
push 0
lea ecx, [ebp - 8]
push ecx
push 0xc
lea edx, [ebp - 0x14]
push edx
push 0
push 0
push 0x2d1080
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4982a2
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x10]
mov dword [ecx], edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
mov dword [eax + 4], ecx
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret