joyce8/EMBER2024-capa huggingface dataset:
Function at 0x411900
Capabilities:
Write file on windows

Disassembly:
push 0x28
mov eax, 0x4e3e29
call fcn.004c2a93
mov esi, ecx
mov dword [ebp - 0x2c], esi
xor ebx, ebx
cmp dword [esi + 0x40], ebx
je 0x411a0b
cmp byte [esi + 0x46], bl
je 0x411a0b
mov eax, dword [esi]
mov edi, 0xffff
push edi
call dword [eax + 0xc]
movzx eax, ax
cmp di, ax
jne 0x41193f
xor al, al
jmp 0x411a0d
push ebx
push 8
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
call fcn.0041216d
lea eax, [esi + 0x48]
mov dword [ebp - 4], ebx
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x10
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x34]
mov ecx, dword [ecx + 0x40]
push eax
mov eax, dword [ebp - 0x18]
lea edi, [ebp - 0x28]
cmovae edi, edx
lea esi, [ebp - 0x28]
cmovae esi, edx
mov edx, dword [ecx]
add eax, edi
push eax
push esi
push dword [ebp - 0x30]
call dword [edx + 0x20]
sub eax, ebx
je 0x41199a
dec eax
jne 0x4119f2
mov esi, dword [ebp - 0x2c]
jmp 0x4119a0
mov esi, dword [ebp - 0x2c]
mov byte [esi + 0x46], bl
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x34]
cmp ecx, 0x10
lea eax, [ebp - 0x28]
cmovae eax, edx
sub edi, eax
je 0x4119d8
push dword [esi + 0x50]
cmp ecx, 0x10
push edi
lea eax, [ebp - 0x28]
cmovae eax, edx
push 1
push eax
call fcn.004c54cc
add esp, 0x10
cmp edi, eax
jne 0x4119fb
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x28]
cmp byte [esi + 0x46], 0
je 0x4119f9
test edi, edi
jne 0x411966
push ebx
push 8
lea ecx, [ebp - 0x28]
call fcn.00411f9c
jmp 0x411960
dec eax
dec eax
jne 0x4119ff
inc eax
jmp 0x4119fd
mov bl, 1
mov al, bl
mov bl, al
lea ecx, [ebp - 0x28]
call fcn.0040102f
mov al, bl
jmp 0x411a0d
mov al, 1
call fcn.004c2a42
ret

Function at 0x42e085
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push dword [ebp + 8]
xor ebx, ebx
call fcn.0042de97
mov esi, eax
pop ecx
test esi, esi
jne 0x42e0a0
push 7
pop eax
jmp 0x42e113
push edi
call fcn.0042df26
push esi
test eax, eax
je 0x42e0f5
jmp 0x42e0ca
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42e101
mov eax, ebx
inc ebx
cmp eax, 3
jge 0x42e101
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edi, eax
test edi, edi
je 0x42e0ad
jmp 0x42e101
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x42e101
mov eax, ebx
inc ebx
cmp eax, 3
jge 0x42e101
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edi, eax
test edi, edi
je 0x42e0d8
push esi
call fcn.0043c5a1
pop ecx
push 0xa
xor ecx, ecx
pop eax
test edi, edi
cmovne eax, ecx
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x42e178
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push esi
push dword [ebp + 8]
call fcn.0042de97
mov esi, eax
pop ecx
test esi, esi
jne 0x42e190
push 7
pop eax
jmp 0x42e1bb
push ebx
call fcn.0042df26
push esi
test eax, eax
je 0x42e1a3
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x42e1a9
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ebx, ebx
cmp eax, 0xffffffff
push esi
setne bl
call fcn.0043c5a1
pop ecx
mov eax, ebx
pop ebx
pop esi
pop ebp
ret

Function at 0x42e275
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
jne 0x42e284
xor eax, eax
jmp 0x42e2e2
call fcn.0042df26
test eax, eax
jne 0x42e29b
push esi
call fcn.004c22f0
pop ecx
cmp eax, 0x104
ja 0x42e280
push esi
call fcn.0042de97
mov esi, eax
pop ecx
test esi, esi
jne 0x42e2ad
push 7
pop eax
jmp 0x42e2e2
push ebx
call fcn.0042df26
push esi
test eax, eax
je 0x42e2c0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jmp 0x42e2c6
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push esi
mov ebx, eax
call fcn.0043c5a1
pop ecx
cmp ebx, 0xffffffff
jne 0x42e2d8
xor eax, eax
jmp 0x42e2e1
movsx eax, bl
and eax, 0x10
shr eax, 4
pop ebx
pop esi
pop ebp
ret

Function at 0x42e53f
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3a8
mov eax, dword [0x540698]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x542b74]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test eax, eax
je 0x42e57c
push 0x118
push eax
lea eax, [ebp - 0x13c]
push eax
call fcn.004c5860
add esp, 0xc
mov byte [ebp - 0x24], 0
jmp 0x42e5f4
call fcn.0042df26
mov esi, 0x118
test eax, eax
je 0x42e5bd
lea eax, [ebp - 0x3a8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x3a8]
push eax
call fcn.0042e7a1
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x42e5d9
push 7
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c29c4
leave
ret
lea eax, [ebp - 0x274]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [ebp - 0x274]
push eax
call fcn.0042dfe0
jmp 0x42e5a4
push esi
lea eax, [ebp - 0x13c]
push ebx
push eax
call fcn.004c5860
push ebx
mov byte [ebp - 0x24], 0
call fcn.0043c5a1
add esp, 0x10
lea eax, [ebp - 0x13c]
push eax
call fcn.004c22f0
pop ecx
test eax, eax
jle 0x42e617
lea ecx, [ebp - 0x13c]
cmp byte [ecx + eax - 1], 0x5c
jne 0x42e617
dec eax
test eax, eax
jg 0x42e60b
cmp eax, 0x136
jae 0x42e67c
mov byte [ebp + eax - 0x13c], 0
lea eax, [ebp - 0x13c]
push eax
push str._setilqs_
push edi
call fcn.004c9018
push edi
call fcn.004c22f0
mov esi, eax
lea ecx, [edi + esi]
push ecx
push 0xf
call fcn.00435a26
add esp, 0x18
push 0xf
pop ecx
movzx eax, byte [edi + esi]
xor edx, edx
push 0x3e
pop ebx
div ebx
mov al, byte [edx + str.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
mov byte [edi + esi], al
inc esi
dec ecx
jne 0x42e651
push edi
mov byte [edi + esi], cl
call fcn.0042e178
pop ecx
test eax, eax
jne 0x42e626
jmp 0x42e5ae
call fcn.004c95e8
int3
Function at 0x42e682
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x542b70], 0
push esi
jne 0x42e6c4
call fcn.0042e171
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
mov esi, eax
mov dword [0x542b78], esi
cmp esi, 0xffffffff
jne 0x42e6b3
call fcn.0042e2e5
xor eax, eax
jmp 0x42e73d
mov dword [0x542b70], 1
call fcn.0042e2e5
jmp 0x42e6ca
mov esi, dword [0x542b78]
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
mov eax, dword [ebp + 8]
test eax, eax
jle 0x42e708
test ebx, ebx
jne 0x42e73a
push 0xc
call fcn.0042e00f
mov ebx, eax
pop ecx
test ebx, ebx
je 0x42e73a
push edi
mov esi, 0x4fa94c
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
push dword [0x542b78]
movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
pop edi
jmp 0x42e73a
test ebx, ebx
je 0x42e73a
test eax, eax
jns 0x42e73a
push 0xc
push 0x4fa94c
push ebx
call fcn.004c76aa
add esp, 0xc
test eax, eax
jne 0x42e73a
push ebx
call fcn.0042e00a
pop ecx
xor ebx, ebx
push ebx
push dword [0x542b78]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, ebx
pop ebx
pop esi
pop ebp
ret
Function at 0x439b89
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, dword [ebp + 0xc]
cmp edi, 2
jge 0x439b9a
push 0x17
pop eax
jmp 0x439c04
push ebx
mov ebx, dword [ebp + 8]
push esi
movzx eax, byte [ebx + edi - 1]
movzx ecx, byte [ebx]
movzx eax, byte [eax + 0x4fe030]
movzx ecx, byte [ecx + 0x4fe030]
imul eax, eax, 3
shl ecx, 2
xor eax, ecx
xor eax, edi
push 0x7f
cdq
pop ecx
idiv ecx
movzx esi, byte [edx + str.Pk_]
jmp 0x439bfc
movzx eax, byte [esi + 0x4fdaa0]
cmp eax, edi
jne 0x439bf5
movzx eax, word [esi*2 + 0x4fdb18]
push edi
add eax, str.ABORTABLEFTEMPORARYADDATABASELECTHENDEFAULTRANSACTIONATURALTERAISEACHECKEYAFTEREFERENCESCAPELSEXCEPTRIGGEREGEXPLAINITIALLYANALYZEXCLUSIVEXISTSTATEMENTANDEFERRABLEATTACHAVINGLOBEFOREIGNOREINDEXAUTOINCREMENTBEGINNERENAMEBETWEENOTNULLIKEBYCASCADEFERREDELETECASECASTCOLLATECOLUMNCOMMITCONFLICTCONSTRAINTERSECTCREATECROSSCURRENT_DATECURRENT_TIMESTAMPLANDESCDETACHDISTINCTDROPRAGMATCHFAILIMITFROMFULLGROUPDATEIFIMMEDIATEINSERTINSTEADINTOFFSETISNULLJOINORDEREPLACEOUTERESTRICTPRIMARYQUERYRIGHTROLLBACKROWHENUNIONUNIQUEUSINGVACUUMVALUESVIEWHEREVIRTUAL
push ebx
push eax
call fcn.0043cba9
add esp, 0xc
test eax, eax
je 0x439c07
movzx esi, byte [esi + 0x4fda28]
dec esi
jns 0x439bce
push 0x17
pop eax
pop esi
pop ebx
pop edi
pop ebp
ret
movzx eax, byte [esi + 0x4fdc08]
jmp 0x439c02

Function at 0x439c10
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
pop ebp
jmp fcn.00439589

Function at 0x439c19
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
pop ebp
jmp fcn.00439b89
Function at 0x43c1da
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, esi
xorps xmm0, xmm0
mov dword [ebp - 8], 1
mov dword [ebp - 4], edi
movsd qword [ebp - 0x10], xmm0
jmp 0x43c1fc
inc esi
movsx eax, byte [esi]
push eax
call fcn.004c3d6e
pop ecx
test eax, eax
jne 0x43c1fb
mov al, byte [esi]
cmp al, 0x2d
jne 0x43c216
or dword [ebp - 8], 0xffffffff
jmp 0x43c243
cmp al, 0x2b
jne 0x43c244
jmp 0x43c243
movsx eax, byte [esi]
movsd xmm1, qword [ebp - 0x10]
mulsd xmm1, qword [0x4f6bd8]
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
movaps xmm1, xmm0
movsd qword [ebp - 0x10], xmm1
inc esi
movzx eax, byte [esi]
push eax
call fcn.004c3d18
pop ecx
test eax, eax
jne 0x43c21c
cmp byte [esi], 0x2e
movsd xmm0, qword [0x4f8d28]
movsd qword [ebp - 0x18], xmm0
jne 0x43c2c2
movsd qword [ebp - 0x20], xmm0
jmp 0x43c2a4
movsx eax, byte [esi]
movsd xmm1, qword [ebp - 0x10]
mulsd xmm1, qword [0x4f6bd8]
sub eax, 0x30
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, xmm1
movaps xmm1, xmm0
movsd xmm0, qword [ebp - 0x20]
mulsd xmm0, qword [0x4f6bd8]
movsd qword [ebp - 0x10], xmm1
movsd qword [ebp - 0x20], xmm0
inc esi
movzx eax, byte [esi]
push eax
call fcn.004c3d18
pop ecx
test eax, eax
jne 0x43c26b
movsd xmm0, qword [ebp - 0x10]
divsd xmm0, qword [ebp - 0x20]
movsd qword [ebp - 0x10], xmm0
mov al, byte [esi]
cmp al, 0x65
je 0x43c2d0
cmp al, 0x45
jne 0x43c3b8
xor edi, edi
inc esi
mov dword [ebp + 8], 1
mov al, byte [esi]
cmp al, 0x2d
jne 0x43c2e6
or dword [ebp + 8], 0xffffffff
jmp 0x43c2ea
cmp al, 0x2b
jne 0x43c2eb
inc esi
movzx eax, byte [esi]
push eax
call fcn.004c3d18
pop ecx
test eax, eax
je 0x43c397
movsx eax, byte [esi]
imul edi, edi, 0xa
add eax, 0xffffffd0
add edi, eax
inc esi
movzx eax, byte [esi]
push eax
call fcn.004c3d18
pop ecx
test eax, eax
jne 0x43c2fd
movsd xmm0, qword [0x4f8d28]
cmp edi, 0x40
jl 0x43c340
mov ecx, edi
shr ecx, 6
mov eax, ecx
imul eax, eax, 0xffffffc0
add edi, eax
mulsd xmm0, qword [0x4fe170]
dec ecx
jne 0x43c330
movsd qword [ebp - 0x18], xmm0
cmp edi, 0x10
jl 0x43c361
mov ecx, edi
shr ecx, 4
mov eax, ecx
imul eax, eax, 0xfffffff0
add edi, eax
mulsd xmm0, qword [0x4fe168]
dec ecx
jne 0x43c351
movsd qword [ebp - 0x18], xmm0
cmp edi, 4
jl 0x43c382
mov ecx, edi
shr ecx, 2
mov eax, ecx
imul eax, eax, 0xfffffffc
add edi, eax
mulsd xmm0, qword [0x4fe160]
dec ecx
jne 0x43c372
movsd qword [ebp - 0x18], xmm0
cmp edi, 1
jl 0x43c397
mulsd xmm0, qword [0x4f6bd8]
dec edi
jne 0x43c387
movsd qword [ebp - 0x18], xmm0
cmp dword [ebp + 8], 0
mov edi, dword [ebp - 4]
jge 0x43c3ac
movsd xmm0, qword [ebp - 0x10]
divsd xmm0, qword [ebp - 0x18]
jmp 0x43c3bd
movsd xmm0, qword [ebp - 0x18]
mulsd xmm0, qword [ebp - 0x10]
jmp 0x43c3bd
movsd xmm0, qword [ebp - 0x10]
cmp dword [ebp - 8], 0
jge 0x43c3cb
xorpd xmm0, xmmword [0x4f8dd0]
mov ecx, dword [ebp + 0xc]
sub esi, edi
pop edi
mov eax, esi
movsd qword [ecx], xmm0
pop esi
leave
ret
Function at 0x44b082
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x540698]
xor eax, ebp
mov dword [ebp - 4], eax
movzx eax, word [ebp + 8]
push esi
mov esi, dword [0x54552c]
push edi
push 0xf0
push eax
xor edi, edi
push esi
mov dword [ebp - 0x10c], ecx
inc edi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x44b1f1
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x44b1f1
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, eax
test esi, esi
je 0x44b1f1
push ebx
movzx eax, word [esi]
xor ecx, ecx
cmp cx, ax
je 0x44b1f0
mov ecx, dword [esi + 4]
mov ebx, eax
movzx eax, word [esi + 2]
mov dword [ebp - 0x110], ecx
mov ecx, 0x403
add esi, 8
cmp cx, ax
jne 0x44b16a
push 3
lea eax, [ebp - 0x104]
push esi
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x108], eax
call fcn.0044bd1f
push dword [ebp - 0x108]
mov eax, dword [ebp - 0x10c]
push 0
push 0x143
push ebx
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
xor ecx, ecx
cmp eax, 0xffffffff
lea eax, [ebp - 0x104]
cmove edi, ecx
cmp dword [ebp - 0x108], eax
je 0x44b1e2
push dword [ebp - 0x108]
call fcn.004c2f8c
pop ecx
jmp 0x44b1e2
mov ecx, 0x1234
cmp cx, ax
jne 0x44b1e2
or dword [ebp - 0x130], 0xffffffff
push 3
lea eax, [ebp - 0x104]
push esi
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x134], 1
mov dword [ebp - 0x108], eax
call fcn.0044bd1f
mov eax, dword [ebp - 0x108]
lea ecx, [ebp - 0x104]
mov dword [ebp - 0x12c], eax
cmp eax, ecx
je 0x44b1bc
push eax
call fcn.004c2f8c
pop ecx
lea eax, [ebp - 0x134]
push eax
mov eax, dword [ebp - 0x10c]
push 0
push 0x40b
push ebx
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
xor ecx, ecx
cmp eax, 0xffffffff
cmove edi, ecx
add esi, dword [ebp - 0x110]
test edi, edi
jne 0x44b0e1
pop ebx
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.004c29c4
leave
ret 4

Function at 0x44c587
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push edi
mov esi, ecx
call fcn.0044e278
xor edi, edi
test al, al
jne 0x44c5c2
mov eax, dword [0x541ad4]
mov edx, eax
sub edx, edi
je 0x44c5b8
dec edx
je 0x44c5b0
inc eax
mov dword [0x541ad4], eax
jmp 0x44c5c2
mov dword [0x541ad4], edi
jmp 0x44c5c2
mov dword [0x541ad4], 2
push 0xcf
mov ecx, esi
call fcn.0044b082
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], edi
mov dword [eax], edi
lea eax, [ebp - 4]
push eax
push edi
push esi
push 0x44deef
push edi
push edi
call fcn.004ca088
add esp, 0x18
mov dword [esi + 0x30], eax
push edi
push 0x3e8
push 0x5df
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
xor eax, eax
pop edi
inc eax
pop esi
leave
ret 0x10
Function at 0x44ee93
Capabilities:
Get disk size

Disassembly:
push 0x14
mov eax, 0x4e487d
call fcn.004c2a60
mov ebx, dword [ebp + 8]
xor edi, edi
mov dword [ebp - 0x20], edi
mov esi, dword [0x541ad4]
push 0x14
lea ecx, [esi + 2]
lea eax, [esi + 1]
imul eax, ecx
imul eax, esi
cdq
pop ecx
idiv ecx
mov dword [ebp - 4], edi
cmp edx, 3
jne 0x44eedd
call fcn.004c2f1b
mov esi, dword [0x541ad4]
cmp esi, eax
jne 0x44eedd
dec esi
mov dword [0x541ad4], esi
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], edi
cmp dword [ecx - 0xc], 0
jne 0x44ef06
push 0x4fefbc
mov ecx, ebx
call fcn.00401824
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
jmp 0x44f093
lea edx, [esi + 1]
lea eax, [esi + 2]
imul eax, edx
imul eax, esi
push 0x18
cdq
pop esi
idiv esi
cmp edx, 0x17
jne 0x44ef23
dec dword [0x542f9c]
mov eax, dword [0x543044]
test eax, eax
jne 0x44ef89
call fcn.00450da4
test al, al
jne 0x44ef40
push edi
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
push str.Version.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
call fcn.00450cd2
test al, al
jne 0x44ef62
push edi
push edi
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_PeekNamedPipe]
test esi, esi
je 0x44ef79
push str.GetFileVersionInfoSizeW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x543044], eax
jmp 0x44ef7e
mov eax, dword [0x543044]
test eax, eax
je 0x44f0a0
mov ecx, dword [ebp + 0xc]
lea edx, [ebp - 0x1c]
push edx
push ecx
call eax
mov esi, eax
call fcn.00450f3b
test al, al
jne 0x44efb0
push edi
push edi
push edi
push edi
push edi
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push edi
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
push 0x4fa988
lea ecx, [ebp - 0x10]
call fcn.00401824
mov byte [ebp - 4], 1
test esi, esi
je 0x44f070
push esi
call fcn.004c0e30
pop ecx
mov edi, eax
push edi
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0xc]
call fcn.00409dce
push eax
call fcn.00414b4a
test eax, eax
je 0x44f036
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x4f6850
push edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x44f036
cmp dword [ebp - 0x14], 0
je 0x44f036
mov ecx, dword [ebp - 0x18]
cmp dword [ecx], 0xfeef04bd
jne 0x44f036
movzx eax, word [ecx + 0xc]
push eax
movzx eax, word [ecx + 0xe]
push eax
movzx eax, word [ecx + 8]
push eax
movzx eax, word [ecx + 0xa]
push eax
lea eax, [ebp - 0x10]
push 0x4ff010
push eax
call fcn.00403ae2
add esp, 0x18
push edi
call fcn.004c1c8e
pop ecx
call fcn.00450fa6
test al, al
jne 0x44f070
mov eax, dword [0x541ad4]
push 0x64
cdq
pop ecx
idiv ecx
xor ecx, ecx
push 4
lea eax, [edx + 0x7b]
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004c0e30
push eax
call fcn.004c1c8e
pop ecx
pop ecx
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
push eax
call fcn.00403806
pop ecx
mov ecx, dword [ebp - 0x10]
add eax, 0x10
lea ecx, [ecx - 0x10]
mov dword [ebx], eax
call fcn.00404fef
mov ecx, dword [ebp + 0xc]
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov eax, ebx
call fcn.004c2a2e
ret
mov esi, edi
jmp 0x44ef92
Function at 0x4504c5
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e4af0
mov eax, dword fs:[0]
push eax
mov eax, 0x17b8
call fcn.004c3960
mov eax, dword [0x540698]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x17c4], esi
call fcn.00450d60
test al, al
jne 0x450516
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetMailslotInfo]
mov ebx, esi
mov dword [ebp - 0x17b8], ebx
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, dword [0x541ad4]
mov dword [ebp - 0x17c0], eax
movzx eax, al
mov dword [ebp - 0x17bc], eax
lea edx, [ecx + 2]
lea eax, [ecx + 1]
imul eax, edx
imul eax, ecx
push 6
cdq
pop ecx
idiv ecx
cmp edx, 3
jne 0x4505b9
xor eax, eax
push 0x17a0
mov word [ebp - 0x17b4], ax
lea eax, [ebp - 0x17b2]
push esi
push eax
call fcn.004c3990
add esp, 0xc
xor edx, edx
test ebx, ebx
je 0x450598
test edx, edx
je 0x450598
lea eax, [esi + edx]
lea ecx, [esi + edx]
mov ax, word [ebp + eax*2 - 0x1822]
inc ax
add ax, word [ebp + ecx*2 - 0x17b6]
mov word [ebp + ecx*2 - 0x17b4], ax
inc edx
cmp edx, 0x37
jl 0x450570
add esi, 0x37
inc ebx
cmp esi, 0xbd1
jl 0x45056e
movsx eax, word [ebp - 0x14]
mov ebx, dword [ebp - 0x17b8]
mov dword [0x541ad4], eax
mov ecx, dword [ebp - 0x17c0]
mov eax, ecx
shr eax, 8
movzx esi, al
cmp ecx, 0x80000000
jae 0x4505d4
mov ebx, ecx
shr ebx, 0x10
cmp dword [ebp - 0x17bc], 6
jb 0x4505eb
cmp esi, 2
jb 0x4505eb
push edi
call fcn.00450652
pop ecx
jmp 0x450636
push 0x5401f0
lea ecx, [ebp - 0x17b8]
call fcn.00401718
and dword [ebp - 4], 0
push ebx
push esi
push dword [ebp - 0x17bc]
lea eax, [ebp - 0x17b8]
push 0x4ff4c4
push eax
call fcn.00403ae2
mov esi, dword [ebp - 0x17b8]
add esi, 0xfffffff0
push esi
call fcn.00403806
add eax, 0x10
add esp, 0x18
mov ecx, esi
mov dword [edi], eax
call fcn.00404fef
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c29c4
leave
ret
Function at 0x450652
Capabilities:
Get disk size

Disassembly:
push 0xb0c
mov eax, 0x4e4b44
call fcn.004c2a93
mov ebx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0xb14], ebx
mov dword [ebp - 0xb18], esi
call fcn.00467b05
test al, al
jne 0x4506a8
mov eax, dword [0x541ad4]
push 0x64
cdq
pop ecx
idiv ecx
xor ecx, ecx
push 4
lea eax, [edx + 0x2f4]
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004c0e30
push eax
call fcn.004c1c8e
pop ecx
pop ecx
mov dword [ebp - 0xb10], esi
mov dword [ebp - 0xb0c], esi
mov dword [ebp - 0xb08], esi
push 1
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xb10]
mov dword [ebp - 4], esi
call fcn.004079e9
mov edx, dword [0x541ad4]
mov edi, eax
lea ecx, [edx + 1]
lea eax, [edx + 2]
imul eax, ecx
imul eax, edx
push 0xc
cdq
pop ecx
idiv ecx
cmp edx, 0xa
jne 0x4506fd
call fcn.004c2f1b
mov dword [0x541ad4], eax
test edi, edi
je 0x450753
push 1
push str.SOFTWAREMicrosoftWindows_NTCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0xb10]
call fcn.004079e9
mov ecx, dword [0x541ad4]
mov edi, eax
mov eax, ecx
imul eax, ecx
imul eax, ecx
push 0x15
cdq
pop ecx
idiv ecx
cmp edx, 0xb
jne 0x45073e
push esi
push esi
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test edi, edi
je 0x450753
push 0x4fefbc
mov ecx, ebx
call fcn.00401824
jmp 0x4508be
xor eax, eax
push 0x7fe
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push esi
push eax
call fcn.004c3990
add esp, 0xc
mov edi, 0x400
push 0x4fefbc
lea ecx, [ebp - 0xb00]
mov dword [ebp - 0xafc], edi
call fcn.00401824
lea eax, [ebp - 0xafc]
push eax
lea eax, [ebp - 0x810]
push eax
push str.CurrentVersion
lea ecx, [ebp - 0xb10]
mov byte [ebp - 4], 1
call fcn.00407a67
test eax, eax
jne 0x450866
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xb00]
call fcn.00406434
push 0x4ff4c0
lea ecx, [ebp - 0xb04]
mov dword [ebp - 0xafc], edi
call fcn.00401824
lea eax, [ebp - 0xafc]
push eax
lea eax, [ebp - 0x810]
push eax
push str.CurrentBuild
lea ecx, [ebp - 0xb10]
mov byte [ebp - 4], 2
call fcn.00407a67
test eax, eax
jne 0x450854
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0xb04]
call fcn.00406434
lea eax, [ebp - 0xb04]
push eax
lea eax, [ebp - 0xafc]
push 0x4ff5c8
push eax
call fcn.00401ec9
add esp, 0xc
mov eax, dword [eax]
lea ecx, [ebp - 0xb00]
push dword [eax - 0xc]
mov byte [ebp - 4], 3
push eax
call fcn.00401f75
mov ecx, dword [ebp - 0xafc]
lea ecx, [ecx - 0x10]
call fcn.00404fef
mov ecx, dword [ebp - 0xb04]
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.00404fef
lea ecx, [ebp - 0xb10]
call fcn.00406e5e
mov edi, dword [0x541ad4]
mov eax, edi
imul eax, edi
push 0x17
cdq
pop ecx
idiv ecx
push 0x15
pop eax
cmp edx, eax
jne 0x45089b
mov ebx, edi
inc esi
dec ebx
cmp esi, 0xba
jb 0x45088b
mov ebx, dword [ebp - 0xb14]
mov eax, dword [ebp - 0xb00]
add eax, 0xfffffff0
push eax
call fcn.00403806
pop ecx
mov ecx, dword [ebp - 0xb00]
add eax, 0x10
lea ecx, [ecx - 0x10]
mov dword [ebx], eax
call fcn.00404fef
lea ecx, [ebp - 0xb10]
call fcn.00406e5e
mov eax, ebx
call fcn.004c2a42
ret
Function at 0x451006
Capabilities:
Get disk size

Disassembly:
push esi
mov esi, dword [0x541ad4]
push edi
lea eax, [esi + 1]
imul eax, esi
push 0xb
mov edi, ecx
cdq
pop ecx
idiv ecx
cmp edx, 4
jne 0x45102f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [0x541ad4], esi
cmp dword [edi], 0
je 0x451042
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [0x541ad4]
lea ecx, [esi + 2]
lea eax, [esi + 1]
imul ecx, eax
imul ecx, esi
and ecx, 0x8000000f
jns 0x45105b
dec ecx
or ecx, 0xfffffff0
inc ecx
cmp ecx, 5
jne 0x45106d
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov ecx, dword [edi + 4]
pop edi
sub ecx, 0x10
pop esi
jmp fcn.00404fef