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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1048
call fcn.0041e640
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
xor edi, edi
lea ecx, [ebp - 0x820]
mov edx, str.00_00_00_00_00_00
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x407d43
pop eax
push 0x427e86
lea eax, [ebp - 0x820]
push eax
call fcn.0041e5f0
add esp, 8
push ebx
lea eax, [ebp - 0x820]
push eax
call fcn.0041e5f0
add esp, 8
lea ecx, [ebp - 0xc30]
mov edx, str.xx_xx_xx_xx_xx_xx
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x407d85
pop eax
push 0x427e86
lea eax, [ebp - 0xc30]
push eax
call fcn.0041e5f0
add esp, 8
push ebx
lea eax, [ebp - 0xc30]
push eax
call fcn.0041e5f0
add esp, 8
push 0x43f3b0
push 0x200
lea eax, [ebp - 0x1030]
push eax
push 0
push 0
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea esi, [ebp - 0x1030]
cmp word [esi], 0
je 0x407ea2
jmp 0x407e8d
mov ax, word [esi]
test ax, ax
je 0x407e82
cmp ax, 0x7c90
je 0x407e82
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x410]
push eax
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xa
push 0
push esi
call fcn.0041fa40
add esp, 0xc
mov edi, eax
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x820]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x407e6f
cmp dword [0x43bef4], 0
je 0x407e82
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0xc30]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x407e82
mov eax, dword [ebp + 0xc]
push eax
push str.last_session_bookmarks
call fcn.00408d40
jmp 0x407f0b
mov eax, esi
add esi, 2
cmp word [eax], 0
jne 0x407e82
cmp word [esi], 0
jne 0x407dee
cmp word [esi - 2], 0
jne 0x407dee
inc edi
push 0x410f90
push 4
mov eax, dword [0x43bf24]
push eax
mov eax, dword [0x43bf28]
push eax
call fcn.0041f9c0
add esp, 0x10
jmp 0x407ec1
inc edi
push edi
call fcn.004105c0
test eax, eax
jne 0x407ec0
push 0xa
lea eax, [ebp - 0x1048]
push eax
push edi
call fcn.0041e700
add esp, 0xc
push ebx
lea eax, [ebp - 0xc30]
push eax
lea eax, [ebp - 0x820]
push eax
lea eax, [ebp - 0x1048]
push eax
push str.last_session_files
call fcn.00408e90
mov eax, dword [ebp + 0xc]
push eax
push str.last_session_bookmarks
call fcn.00408d40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x407f20
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc20
push ebx
push 0x43f3b0
push 0x200
lea eax, [ebp - 0xc20]
push eax
push 0
push 0
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ebx, [ebp - 0xc20]
cmp word [ebx], 0
je 0x40802f
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x820]
push eax
call fcn.00410280
jmp 0x40801a
mov ax, word [ebx]
test ax, ax
je 0x40800f
cmp ax, 0x7c90
je 0x40800f
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x410]
push eax
push 0
push ebx
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x820]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x407fe1
cmp dword [0x43bef4], 0
je 0x40800f
lea eax, [ebp - 0x410]
push eax
lea eax, [ebp - 0x820]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
jne 0x40800f
push 0x43f3b0
push 0
push ebx
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x43f3b0
push 0
lea eax, [ebp - 0x820]
push eax
push str.last_session_bookmarks
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x40802f
mov eax, ebx
add ebx, 2
cmp word [eax], 0
jne 0x40800f
cmp word [ebx], 0
jne 0x407f6f
cmp word [ebx - 2], 0
jne 0x407f6f
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x408040
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x850
push ebx
push esi
push edi
push 0x43f3b0
push 0x200
lea eax, [ebp - 0x850]
push eax
push 0
push 0
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov dword [0x43bf24], 0
lea edx, [ebp - 0x850]
mov eax, 0xfffffffe
add eax, 2
cmp word [edx + eax], 0
jne 0x408081
shr eax, 1
test eax, eax
je 0x4081c0
lea esi, [ebp - 0x850]
cmp word [esi], 0
je 0x4081c0
jmp 0x4081ab
mov ax, word [esi]
test ax, ax
je 0x4081a0
cmp ax, 0x7c90
je 0x4081a0
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x450]
push eax
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edi, [ebp - 0x450]
xor ebx, ebx
jmp 0x4080f7
mov eax, edi
add edi, 2
mov ax, word [eax]
mov word [ebp + ebx*2 - 0x40], ax
inc ebx
cmp word [edi], 0x5e
jne 0x4080e9
add edi, 2
mov word [ebp + ebx*2 - 0x40], 0
cmp dword [0x43bef4], 0
je 0x408125
push str.xx_xx_xx_xx_xx_xx
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x4081a0
push str.00_00_00_00_00_00
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x4081a0
cmp dword [0x43bf24], 0
jne 0x40815a
push 4
push 8
mov eax, dword [0x44019c]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [0x43bf28], eax
jmp 0x40817e
mov eax, dword [0x43bf24]
inc eax
add eax, eax
add eax, eax
push eax
mov eax, dword [0x43bf28]
push eax
push 8
mov eax, dword [0x44019c]
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov dword [0x43bf28], eax
push 0xa
push 0
push esi
call fcn.0041fa40
add esp, 0xc
mov edx, dword [0x43bf24]
mov ecx, dword [0x43bf28]
mov dword [ecx + edx*4], eax
inc dword [0x43bf24]
mov eax, esi
add esi, 2
cmp word [eax], 0
jne 0x4081a0
cmp word [esi], 0
jne 0x4080aa
cmp word [esi - 2], 0
jne 0x4080aa
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4081d0
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x854
push ebx
push esi
push edi
push 0x43f3b0
push 0x200
lea eax, [ebp - 0x64c]
push eax
push 0
push 0
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x64c]
mov eax, 0xfffffffe
add eax, 2
cmp word [edx + eax], 0
jne 0x408207
shr eax, 1
test eax, eax
jne 0x408228
push 0
push 0x43cc9c
call fcn.00409cf0
jmp 0x4083f6
lea esi, [ebp - 0x64c]
cmp word [esi], 0
je 0x4083f6
jmp 0x4083dc
mov ax, word [esi]
test ax, ax
je 0x4083d1
cmp ax, 0x7c90
je 0x4083d1
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x248]
push eax
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edi, [ebp - 0x248]
xor ebx, ebx
jmp 0x40828a
mov eax, edi
add edi, 2
mov ax, word [eax]
mov word [ebp + ebx*2 - 0x40], ax
inc ebx
cmp word [edi], 0x5e
jne 0x40827c
add edi, 2
mov word [ebp + ebx*2 - 0x40], 0
push str.00_00_00_00_00_00
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
jne 0x408337
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4082d9
push 0x43f3b0
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x4083d1
lea eax, [ebp - 0x854]
push eax
push edi
call fcn.0040e620
push 1
push 0
lea eax, [ebp - 0x854]
push eax
push edi
mov eax, dword [ebp + 8]
push eax
call fcn.0040e650
mov dword [ebp - 0x24c], eax
push eax
push str.last_session_bookmarks
call fcn.00410190
mov eax, dword [ebp - 0x24c]
cmp dword [eax + 0x338], 0
je 0x4083d1
push 0
push 0
mov eax, dword [ebp - 0x24c]
mov eax, dword [eax]
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
jmp 0x4083d1
cmp dword [0x43bef4], 0
je 0x4083d1
push str.xx_xx_xx_xx_xx_xx
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
jne 0x4083d1
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x40837c
push 0x43f3b0
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
jmp 0x4083d1
lea eax, [ebp - 0x854]
push eax
push edi
call fcn.0040e620
push 1
push 0
lea eax, [ebp - 0x854]
push eax
push edi
mov eax, dword [ebp + 8]
push eax
call fcn.0040e650
mov dword [ebp - 0x24c], eax
push eax
push str.last_session_bookmarks
call fcn.00410190
mov eax, dword [ebp - 0x24c]
cmp dword [eax + 0x338], 0
je 0x4083d1
push 0
push 0
mov eax, dword [ebp - 0x24c]
mov eax, dword [eax]
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, esi
add esi, 2
cmp word [eax], 0
jne 0x4083d1
cmp word [esi], 0
jne 0x40823d
cmp word [esi - 2], 0
jne 0x40823d
call fcn.00408400
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x408ad0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x854
push ebx
push esi
push edi
push 0x43f3b0
push 0x200
lea eax, [ebp - 0x850]
push eax
push 0
push 0
push str.recent_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea esi, [ebp - 0x850]
cmp word [esi], 0
je 0x408bef
jmp 0x408bda
mov ax, word [esi]
test ax, ax
je 0x408bcf
cmp ax, 0x7c90
je 0x408bcf
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x450]
push eax
push 0
push esi
push str.recent_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edi, [ebp - 0x450]
xor ebx, ebx
jmp 0x408b5e
mov eax, edi
add edi, 2
mov ax, word [eax]
mov word [ebp + ebx*2 - 0x40], ax
inc ebx
cmp word [edi], 0x5e
jne 0x408b50
add edi, 2
mov word [ebp + ebx*2 - 0x40], 0
push str.00_00_00_00_00_00
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x408ba1
cmp dword [0x43bef4], 0
je 0x408bcf
push str.xx_xx_xx_xx_xx_xx
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
jne 0x408bcf
push 0x43f3b0
push 0
push esi
push str.recent_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x43f3b0
push 0
push 0
lea eax, [ebp - 0x450]
push eax
push str.recent_bookmarks
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStructW]
mov eax, esi
add esi, 2
cmp word [eax], 0
jne 0x408bcf
cmp word [esi], 0
jne 0x408b11
cmp word [esi - 2], 0
jne 0x408b11
mov dword [0x42c010], 0
mov dword [ebp - 0x854], 0
mov eax, dword [ebp - 0x854]
mov dword [eax*4 + 0x43bf30], 0
inc dword [ebp - 0x854]
cmp dword [ebp - 0x854], 0x10
jl 0x408c03
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x408f70
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x448
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov dword [ebp - 4], 0
xor esi, esi
lea eax, [ebx + 0x114]
push eax
call fcn.00409230
test eax, eax
jne 0x4090d8
cmp dword [0x42c010], 0x10
jge 0x409006
xor edi, edi
cmp dword [edi*4 + 0x43bf30], 0
je 0x408fba
mov esi, dword [edi*4 + 0x43bf30]
jmp 0x408fc2
mov dword [ebp - 0x418], edi
jmp 0x408fc8
inc edi
cmp edi, 0x10
jl 0x408fa7
inc esi
push 0x410f90
push 4
mov eax, dword [0x42c014]
push eax
mov eax, dword [0x43bf2c]
push eax
call fcn.0041f9c0
add esp, 0x10
jmp 0x408fe7
inc esi
push esi
call fcn.00410590
test eax, eax
jne 0x408fe6
inc dword [0x42c010]
mov eax, dword [ebp - 0x418]
mov dword [eax*4 + 0x43bf30], esi
jmp 0x40900d
mov dword [ebp - 4], 1
cmp dword [ebp - 4], 0
je 0x40908a
push 0xa
lea eax, [ebp - 0x448]
push eax
mov eax, dword [0x43bf30]
push eax
call fcn.0041e700
add esp, 0xc
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x414]
push eax
push 0
lea eax, [ebp - 0x448]
push eax
push str.recent_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
call fcn.00409100
mov esi, eax
lea edx, [ebp - 0x414]
mov eax, 0xfffffffe
add eax, 2
cmp word [edx + eax], 0
jne 0x409061
shr eax, 1
test eax, eax
je 0x40908a
push 0x43f3b0
push 0
lea eax, [ebp - 0x414]
push eax
push str.recent_bookmarks
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0xa
lea eax, [ebp - 0x430]
push eax
push esi
call fcn.0041e700
add esp, 0xc
lea eax, [ebx + 0x114]
push eax
lea eax, [ebp - 0x414]
push eax
call fcn.00410280
push 0x43f3b0
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x430]
push eax
push str.recent_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
cmp dword [ebp + 0xc], 0
je 0x4090d8
call fcn.004084d0
cmp dword [ebx + 0x338], 0
je 0x4090ec
push ebx
push str.recent_bookmarks
call fcn.00408d40
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x409100
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
push ebx
xor ebx, ebx
push 0xa
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebx*4 + 0x43bf30]
push eax
call fcn.0041e700
add esp, 0xc
push 0xa
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebx*4 + 0x43bf34]
push eax
call fcn.0041e700
add esp, 0xc
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x238]
push eax
push 0
lea eax, [ebp - 0x30]
push eax
push str.recent_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0x43f3b0
lea eax, [ebp - 0x238]
push eax
lea eax, [ebp - 0x18]
push eax
push str.recent_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
inc ebx
cmp ebx, 0xf
jl 0x40910c
mov eax, dword [ebx*4 + 0x43bf30]
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x409230
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
push ebx
push esi
mov eax, dword [0x42c010]
mov edx, dword [0x42c014]
add eax, edx
imul eax, eax, 0x410
mov dword [ebp - 0x418], eax
push eax
call fcn.0041e620
mov dword [ebp - 0x414], eax
push 0x43f3b0
mov eax, dword [0x42c010]
mov edx, dword [0x42c014]
add eax, edx
imul eax, eax, 0x208
push eax
mov eax, dword [ebp - 0x414]
push eax
push str.recent_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov esi, eax
test eax, eax
je 0x4093d9
cmp dword [0x43bef4], 0
jne 0x4092e8
lea ecx, [ebp - 0x410]
mov edx, str.00_00_00_00_00_00
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x4092ac
pop eax
push 0x427e86
lea eax, [ebp - 0x410]
push eax
call fcn.0041e5f0
add esp, 8
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.0041e5f0
add esp, 8
jmp 0x409383
mov eax, dword [ebp + 8]
mov ax, word [eax]
cmp word [0x43bb24], ax
jne 0x40933e
lea ecx, [ebp - 0x410]
mov edx, str.xx_xx_xx_xx_xx_xx
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x409305
pop eax
push 0x427e86
lea eax, [ebp - 0x410]
push eax
call fcn.0041e5f0
add esp, 8
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.0041e5f0
add esp, 8
jmp 0x409383
lea ecx, [ebp - 0x410]
mov edx, str.00_00_00_00_00_00
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x40934c
pop eax
push 0x427e86
lea eax, [ebp - 0x410]
push eax
call fcn.0041e5f0
add esp, 8
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.0041e5f0
add esp, 8
mov ebx, dword [ebp - 0x414]
jmp 0x4093ca
mov ax, word [ebx]
test ax, ax
je 0x4093bf
cmp ax, 0x7c90
je 0x4093bf
mov eax, ebx
add ebx, 2
cmp word [eax], 0x3d
jne 0x409399
lea eax, [ebp - 0x410]
push eax
push ebx
call fcn.0041e7c0
add esp, 8
test eax, eax
jne 0x4093bf
mov eax, 1
jmp 0x4093d9
mov eax, ebx
add ebx, 2
cmp word [eax], 0
jne 0x4093bf
cmp word [ebx], 0
jne 0x40938b
cmp word [ebx - 2], 0
jne 0x40938b
xor eax, eax
lea esp, [ebp - 0x420]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x409710
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80c
push ebx
push esi
push edi
mov eax, dword [0x43bb20]
test eax, eax
je 0x40972c
push eax
call fcn.0041f190
pop ecx
mov dword [0x43bb1c], 0
push 0x43f3b0
push 0x400
lea eax, [ebp - 0x80c]
push eax
push 0
push 0
push str.accelerators
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ebx, [ebp - 0x80c]
cmp word [ebx], 0
je 0x409848
jmp 0x409818
mov ax, word [ebx]
test ax, ax
je 0x40980d
cmp ax, 0x7c90
je 0x40980d
push 0x43f3b0
push 6
lea eax, [ebp - 8]
push eax
push ebx
push str.accelerators
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
inc dword [0x43bb1c]
cmp dword [0x43bb1c], 1
jne 0x4097c6
push 6
call fcn.0041edd0
pop ecx
mov dword [0x43bb20], eax
mov edi, dword [0x43bb20]
lea esi, [ebp - 8]
mov ecx, 6
rep movsb byte es:[edi], byte [esi]
jmp 0x40980d
mov eax, dword [0x43bb1c]
lea eax, [eax + eax*2]
add eax, eax
push eax
mov eax, dword [0x43bb20]
push eax
call fcn.0041ff80
add esp, 8
mov dword [0x43bb20], eax
mov eax, dword [0x43bb20]
mov dword [ebp - 0xc], eax
mov eax, dword [0x43bb1c]
lea eax, [eax + eax*2]
add eax, eax
mov edx, dword [ebp - 0xc]
lea eax, [edx + eax - 6]
mov dword [ebp - 0xc], eax
mov edi, dword [ebp - 0xc]
lea esi, [ebp - 8]
mov ecx, 6
rep movsb byte es:[edi], byte [esi]
mov eax, ebx
add ebx, 2
cmp word [eax], 0
jne 0x40980d
cmp word [ebx], 0
jne 0x40976b
cmp word [ebx - 2], 0
jne 0x40976b
push 0x410fa0
push 6
mov eax, dword [0x43bb1c]
push eax
mov eax, dword [0x43bb20]
push eax
call fcn.0041f9c0
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x40a670
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x930
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
xor edi, edi
lea ecx, [ebp - 0x52c]
mov edx, 0x43f0a8
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x40a68f
pop eax
push 0x43f2b0
lea eax, [ebp - 0x52c]
push eax
call fcn.0041e5f0
add esp, 8
lea eax, [ebp - 0x52c]
push eax
push 0x200
lea eax, [ebp - 0x92c]
push eax
push 0
push 0
push str.refresh_freq
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edx, [ebp - 0x324]
mov ecx, 0x324
xor eax, eax
push edi
mov edi, edx
rep stosb byte es:[edi], al
pop edi
mov eax, edx
mov dword [ebp - 0x318], 0x28
or dword [ebp - 0x320], 0xffffffff
or dword [ebp - 0x31c], 0xffffffff
lea esi, [ebp - 0x92c]
cmp word [esi], 0
je 0x40a812
jmp 0x40a794
mov ax, word [esi]
test ax, ax
je 0x40a789
cmp ax, 0x7c90
je 0x40a789
lea eax, [ebp - 0x52c]
push eax
push 0x20
lea eax, [ebp - 0x308]
push eax
mov eax, dword [edi*4 + 0x437cd0]
push eax
push esi
push str.refresh_freq
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0xa
push 0
push esi
call fcn.0041fa40
add esp, 0xc
add eax, 0x2af8
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x308]
push eax
mov eax, dword [ebp - 0x324]
push eax
push 0
push ebx
call dword [sym.imp.USER32.dll_AppendMenuW]
mov eax, edi
inc edi
push eax
push ebx
lea eax, [ebp - 0x324]
push eax
call fcn.00411170
mov eax, esi
add esi, 2
cmp word [eax], 0
jne 0x40a789
cmp word [esi], 0
jne 0x40a717
cmp word [esi - 2], 0
jne 0x40a717
jmp 0x40a817
mov eax, edi
shl eax, 2
mov dword [ebp - 0x930], eax
lea ecx, [ebp - 0x308]
mov edx, dword [eax + 0x437cd0]
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x40a7c5
pop eax
mov eax, dword [ebp - 0x930]
mov eax, dword [eax + 0x437cf8]
add eax, 0x2af8
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x308]
push eax
mov eax, dword [ebp - 0x324]
push eax
push 0
push ebx
call dword [sym.imp.USER32.dll_AppendMenuW]
push edi
push ebx
lea eax, [ebp - 0x324]
push eax
call fcn.00411170
inc edi
cmp edi, 0xa
jb 0x40a7ab
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x40a820
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push esi
push edi
push 0x50
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cmp eax, 1
jne 0x40a85a
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea edx, [ebp - 0x30]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x28]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
jmp 0x40a870
push 0x4e
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x34], eax
push 0x4f
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x38], eax
push 0x43f3b0
push 0x20
lea eax, [ebp - 0x20]
push eax
push str.position
push str.preferences
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
test eax, eax
jne 0x40a8b8
fld qword [0x4269ec]
fstp qword [ebp - 0x20]
fld qword [0x4269ec]
fstp qword [ebp - 0x18]
mov dword [ebp - 0x10], 0x2f8
mov dword [ebp - 0xc], 0x208
mov dword [ebp - 8], 0
jmp 0x40a8ca
fild dword [ebp - 0x34]
fmul qword [ebp - 0x20]
fstp qword [ebp - 0x20]
fild dword [ebp - 0x38]
fmul qword [ebp - 0x18]
fstp qword [ebp - 0x18]
mov edi, dword [ebp + 8]
lea esi, [ebp - 0x20]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4

Function at 0x40a8e0
Capabilities:
Read .ini file

Disassembly:
push 0x43f3b0
push 0x50
push 0x43f9cc
push str.settings
push str.preferences
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
test eax, eax
jne 0x40a9d2
push 0x43f3b0
push 0x48
push 0x43f9cc
push str.settings
push str.preferences
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStructW]
test eax, eax
jne 0x40a9d2
mov dword [0x43f9cc], 1
mov dword [0x43f9d0], 0x30
mov dword [0x43f9d4], 2
mov dword [0x43f9d8], 0x90
mov dword [0x43f9e0], 0x409
mov dword [0x42c024], 0
mov dword [0x43f9e4], 1
mov dword [0x43f9e8], 1
mov dword [0x43f9ec], 1
mov dword [0x43f9f4], 0
mov dword [0x43f9f8], 2
mov dword [0x43f9fc], 0
mov dword [0x43fa00], 0
mov dword [0x43fa04], 0
mov dword [0x43fa08], 0
mov dword [0x43fa10], 4
mov dword [0x43fa0c], 0
push 0x43f3b0
push pe_nt_image_headers32
push 0x43f2b0
push 0
push str.language
push str.preferences
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
jne 0x40aa2e
mov ecx, 0x43f2b0
mov edx, str.english.lng
push ecx
sub ecx, edx
mov ax, word [edx]
mov word [ecx + edx], ax
add edx, 2
test ax, ax
jne 0x40aa04
pop eax
push 0x43f3b0
push 0x43f2b0
push str.language
push str.preferences
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov dword [0x43c88c], 1
ret
Function at 0x40afa0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x850
push ebx
push esi
push edi
push 0x43f3b0
push 0x200
lea eax, [ebp - 0x850]
push eax
push 0
push 0
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea esi, [ebp - 0x850]
cmp word [esi], 0
je 0x40b0bf
jmp 0x40b0aa
mov ax, word [esi]
test ax, ax
je 0x40b09f
cmp ax, 0x7c90
je 0x40b09f
push 0x43f3b0
push 0x104
lea eax, [ebp - 0x450]
push eax
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea edi, [ebp - 0x450]
xor ebx, ebx
jmp 0x40b02e
mov eax, edi
add edi, 2
mov ax, word [eax]
mov word [ebp + ebx*2 - 0x40], ax
inc ebx
cmp word [edi], 0x5e
jne 0x40b020
add edi, 2
mov word [ebp + ebx*2 - 0x40], 0
push str.00_00_00_00_00_00
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
je 0x40b071
cmp dword [0x43bef4], 0
je 0x40b09f
push str.xx_xx_xx_xx_xx_xx
lea eax, [ebp - 0x40]
push eax
call fcn.0041e7c0
add esp, 8
test eax, eax
jne 0x40b09f
push 0x43f3b0
push 0
push esi
push str.last_session_files
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x43f3b0
push 0
push 0
lea eax, [ebp - 0x450]
push eax
push str.last_session_bookmarks
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStructW]
mov eax, esi
add esi, 2
cmp word [eax], 0
jne 0x40b09f
cmp word [esi], 0
jne 0x40afe1
cmp word [esi - 2], 0
jne 0x40afe1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret