joyce8/EMBER2024-capa huggingface dataset:
Function at 0x44e380
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
push ebx
mov ebx, dword [esp + 0x10]
push ebp
push ebx
push dword [0x5760fc]
mov dword [esp + 0x14], 0
call fcn.00460e39
mov ebp, eax
test ebp, ebp
je 0x44e4ea
push esi
push edi
push ebx
call fcn.0044ec00
cmp dword [ebp + 4], 0
mov esi, eax
mov edi, edx
je 0x44e3ce
push 4
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.0044ec70
mov ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x44e3e9
push 0
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x1c]
push eax
push dword [ebp]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0x14]
cmp ecx, 2
jl 0x44e419
lea edx, [esp + 0x10]
mov eax, 0xfeff
cmp word [edx], ax
jne 0x44e419
add esi, 2
adc edi, 0
push edi
push esi
push ebx
call fcn.0044dfe0
pop edi
pop esi
pop ebp
mov eax, 0x19
pop ebx
add esp, 8
ret 4
cmp ecx, 3
jl 0x44e44c
lea edx, [esp + 0x10]
cmp word [edx], 0xbbef
jne 0x44e44c
cmp byte [edx + 2], 0xbf
jne 0x44e44c
add esi, 3
adc edi, 0
push edi
push esi
push ebx
call fcn.0044dfe0
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 8
ret 4
cmp ecx, 2
jl 0x44e47c
lea edx, [esp + 0x10]
mov eax, 0xfffe
cmp word [edx], ax
jne 0x44e47c
add esi, 2
adc edi, 0
push edi
push esi
push ebx
call fcn.0044dfe0
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 8
ret 4
cmp ecx, 4
jl 0x44e4d3
lea eax, [esp + 0x10]
cmp dword [eax], 0xfeff
jne 0x44e4aa
add esi, 4
adc edi, 0
push edi
push esi
push ebx
call fcn.0044dfe0
pop edi
pop esi
pop ebp
mov eax, 5
pop ebx
add esp, 8
ret 4
lea eax, [esp + 0x10]
cmp dword [eax], 0xfffe0000
jne 0x44e4d3
add esi, 4
adc edi, 0
push edi
push esi
push ebx
call fcn.0044dfe0
pop edi
pop esi
pop ebp
mov eax, 6
pop ebx
add esp, 8
ret 4
push edi
push esi
push ebx
call fcn.0044dfe0
pop edi
pop esi
pop ebp
mov eax, 0x18
pop ebx
add esp, 8
ret 4
pop ebp
mov eax, 0x18
pop ebx
add esp, 8
ret 4

Function at 0x44e500
Capabilities:
Read file on windows

Disassembly:
sub esp, 8
push esi
push dword [esp + 0x10]
mov dword [esp + 8], 0
push dword [0x5760fc]
call fcn.00460e39
mov esi, eax
test esi, esi
je 0x44e57f
cmp dword [esi + 4], 0
je 0x44e550
push 1
lea eax, [esp + 8]
push eax
push esi
call fcn.0044ec70
test eax, eax
je 0x44e544
inc dword [esi + 0xc]
xor eax, eax
pop esi
add esp, 8
ret 4
mov eax, 1
pop esi
add esp, 8
ret 4
push 0
lea eax, [esp + 0xc]
push eax
push 1
lea eax, [esp + 0x1c]
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44e58a
cmp dword [esp + 8], 0
je 0x44e58a
push 1
push 0
push 0xffffffffffffffff
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 4]
pop esi
add esp, 8
ret 4
or eax, 0xffffffff
pop esi
add esp, 8
ret 4
Function at 0x44e5a0
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x18]
push 0x1000
push 0
push dword [0x5738a0]
mov dword [esp + 0x14], 0x1000
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
mov dword [esp + 0x10], edx
test edx, edx
je 0x44e730
mov cl, byte [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x24]
push esi
push edi
mov esi, edx
mov edi, edi
cmp ebp, 0xffffffff
je 0x44e5ee
test ebp, ebp
je 0x44e696
dec ebp
cmp dword [ebx + 4], 0
lea edi, [ebx + 4]
je 0x44e60a
push 1
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.0044ec70
mov dword [esp + 0x10], eax
jmp 0x44e624
push 0
lea eax, [esp + 0x14]
push eax
push 1
lea eax, [esp + 0x30]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x24]
cmp eax, 1
jne 0x44e699
test cl, cl
je 0x44e638
mov byte [esi], cl
inc esi
mov cl, byte [esp + 0x24]
mov eax, dword [esp + 0x14]
mov edi, esi
mov edx, dword [esp + 0x1c]
dec eax
sub edi, edx
cmp edi, eax
jle 0x44e673
mov eax, dword [esp + 0x14]
add eax, 0x1000
push eax
push edx
push 8
push dword [0x5738a0]
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov cl, byte [esp + 0x24]
mov edx, eax
mov dword [esp + 0x1c], edx
lea esi, [edi + edx]
test cl, cl
je 0x44e696
cmp dword [esp + 0x28], 0
jne 0x44e5e0
cmp cl, 0xd
je 0x44e6a2
cmp cl, 0xa
jne 0x44e5e0
dec esi
jmp 0x44e713
lea edi, [ebx + 4]
cmp dword [esp + 0x28], 0
jne 0x44e713
jmp 0x44e6a5
lea edi, [ebx + 4]
cmp cl, 0xa
jne 0x44e6ad
dec esi
jmp 0x44e713
cmp cl, 0xd
jne 0x44e713
dec esi
cmp dword [edi], 0
je 0x44e6cb
push 1
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.0044ec70
mov dword [esp + 0x10], eax
jmp 0x44e6e1
push 0
lea eax, [esp + 0x14]
push eax
push 1
lea eax, [esp + 0x30]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x24], 0xa
je 0x44e713
cmp dword [edi], 0
je 0x44e6f2
inc dword [ebx + 0xc]
jmp 0x44e713
push 1
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], 0xffffffff
push eax
push 0xffffffffffffffff
push dword [ebx]
mov dword [esp + 0x28], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x30]
mov ecx, esi
sub ecx, dword [esp + 0x1c]
pop edi
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov byte [esi], 0
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
Function at 0x44e740
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
push 0x1000
push 0
push dword [0x5738a0]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
mov dword [esp + 8], edx
test edx, edx
je 0x44e8ff
mov ax, word [esp + 0x1c]
push ebp
push esi
push edi
mov edi, edx
mov dword [esp + 0x1c], 0x1000
mov dword [esp + 0x18], 0x7ff
mov ecx, dword [esp + 0x30]
cmp ecx, 0xffffffff
je 0x44e799
test ecx, ecx
je 0x44e85c
dec ecx
mov dword [esp + 0x30], ecx
cmp dword [ebx + 4], 0
lea ebp, [ebx + 4]
je 0x44e7b5
push 2
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.0044ec70
mov dword [esp + 0x10], eax
jmp 0x44e7cf
push 0
lea eax, [esp + 0x14]
push eax
push 2
lea eax, [esp + 0x34]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x10]
cmp eax, 2
mov ax, word [esp + 0x28]
jne 0x44e85f
test ax, ax
je 0x44e7ed
mov word [edi], ax
add edi, 2
mov ax, word [esp + 0x28]
mov edx, dword [esp + 0x14]
mov esi, edi
mov ecx, dword [esp + 0x18]
sub esi, edx
sar esi, 1
cmp esi, ecx
jle 0x44e834
mov eax, dword [esp + 0x1c]
add ecx, 0x800
add eax, 0x1000
mov dword [esp + 0x18], ecx
push eax
push edx
push 8
push dword [0x5738a0]
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov edx, eax
mov ax, word [esp + 0x28]
mov dword [esp + 0x14], edx
lea edi, [edx + esi*2]
test ax, ax
je 0x44e85f
cmp dword [esp + 0x2c], 0
jne 0x44e783
cmp ax, 0xd
je 0x44e866
cmp ax, 0xa
jne 0x44e783
sub edi, 2
jmp 0x44e8de
lea ebp, [ebx + 4]
cmp dword [esp + 0x2c], 0
jne 0x44e8de
cmp ax, 0xa
jne 0x44e871
sub edi, 2
jmp 0x44e8de
cmp ax, 0xd
jne 0x44e8de
sub edi, 2
cmp dword [ebp], 0
je 0x44e893
push 2
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.0044ec70
mov dword [esp + 0x10], eax
jmp 0x44e8a9
push 0
lea eax, [esp + 0x14]
push eax
push 2
lea eax, [esp + 0x34]
push eax
push dword [ebx]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp word [esp + 0x28], 0xa
je 0x44e8de
cmp dword [ebp], 0
je 0x44e8bd
add dword [ebx + 0xc], 2
jmp 0x44e8de
push 1
lea eax, [esp + 0x24]
mov dword [esp + 0x20], 0xfffffffe
push eax
push 0xfffffffffffffffe
push dword [ebx]
mov dword [esp + 0x30], 0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x34]
mov ecx, edi
sub ecx, dword [esp + 0x14]
sar ecx, 1
mov dword [eax], ecx
xor eax, eax
mov word [edi], ax
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10
xor eax, eax
pop ebx
add esp, 0x14
ret 0x10
Function at 0x44e910
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x14
push 0x1000
push 0
push dword [0x5738a0]
mov dword [esp + 0x10], 0x1000
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
je 0x44ea60
mov eax, dword [esp + 0x1c]
mov cl, byte [esp + 3]
push ebx
push ebp
mov ebp, dword [esp + 0x20]
push esi
push edi
mov edi, dword [esp + 0x30]
mov esi, edx
cmp edi, 0xffffffff
je 0x44e95c
test edi, edi
je 0x44e9cd
dec edi
push esi
push ebp
call fcn.0044eda0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x44e96f
xor cl, cl
jmp 0x44e971
mov cl, byte [esi]
mov edx, dword [esp + 0x1c]
add esi, eax
mov eax, dword [esp + 0x14]
mov ebx, esi
sub ebx, edx
mov byte [esp + 0x13], cl
add eax, 0xfffffffb
cmp ebx, eax
jle 0x44e9b4
mov eax, dword [esp + 0x14]
add eax, 0x1000
push eax
push edx
push 8
push dword [0x5738a0]
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov cl, byte [esp + 0x13]
mov edx, eax
mov dword [esp + 0x1c], edx
lea esi, [ebx + edx]
mov eax, dword [esp + 0x2c]
test cl, cl
je 0x44e9cd
test eax, eax
jne 0x44e952
cmp cl, 0xd
je 0x44e9d1
cmp cl, 0xa
jne 0x44e952
dec esi
jmp 0x44ea43
test eax, eax
jne 0x44ea43
cmp cl, 0xa
jne 0x44e9d9
dec esi
jmp 0x44ea43
cmp cl, 0xd
jne 0x44ea43
dec esi
cmp dword [ebp + 4], 0
je 0x44e9f8
push 1
lea eax, [esp + 0x17]
push eax
push ebp
call fcn.0044ec70
mov dword [esp + 0x20], eax
jmp 0x44ea0f
push 0
lea eax, [esp + 0x24]
push eax
push 1
lea eax, [esp + 0x1f]
push eax
push dword [ebp]
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp byte [esp + 0x13], 0xa
je 0x44ea43
cmp dword [ebp + 4], 0
je 0x44ea21
inc dword [ebp + 0xc]
jmp 0x44ea43
push 1
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], 0xffffffff
push eax
push 0xffffffffffffffff
push dword [ebp]
mov dword [esp + 0x28], 0xffffffff
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [esp + 0x34]
mov ecx, esi
sub ecx, dword [esp + 0x1c]
pop edi
mov dword [eax], ecx
mov eax, dword [esp + 0x18]
mov byte [esi], 0
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10
xor eax, eax
add esp, 0x14
ret 0x10
Function at 0x44ea70
Capabilities:
Write file on windows

Disassembly:
sub esp, 8
push edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x10], 0
cmp dword [edi + 0x1c], 0
jne 0x44eb87
cmp dword [edi + 0x14], 1
push ebx
push ebp
jne 0x44eabd
mov eax, dword [edi + 0xc]
lea ecx, [esp + 0x10]
push 1
neg eax
cdq
push ecx
push eax
push dword [edi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [edi + 8]
mov dword [edi + 0x14], 0
mov dword [edi + 0xc], eax
mov eax, dword [edi + 0xc]
push esi
mov esi, dword [esp + 0x24]
cmp eax, esi
jle 0x44eb46
mov ecx, dword [edi + 4]
sub ecx, eax
mov eax, esi
add ecx, dword [edi + 8]
sub eax, 1
je 0x44eb2f
sub eax, 1
je 0x44eb16
sub eax, 2
je 0x44eaff
push esi
push dword [esp + 0x24]
push ecx
call fcn.00423fc0
add esp, 0xc
mov eax, esi
sub dword [edi + 0xc], esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret 0xc
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, esi
sub dword [edi + 0xc], esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret 0xc
mov eax, dword [esp + 0x20]
mov ax, word [eax]
mov word [ecx], ax
mov eax, esi
sub dword [edi + 0xc], esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret 0xc
mov eax, dword [esp + 0x20]
mov al, byte [eax]
mov byte [ecx], al
mov eax, esi
sub dword [edi + 0xc], esi
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret 0xc
push edi
call fcn.0044db00
mov eax, dword [edi + 8]
cmp esi, eax
jl 0x44eb75
push 0
lea eax, [esp + 0x20]
push eax
push esi
push dword [esp + 0x2c]
push dword [edi]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x1c]
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret 0xc
mov ecx, dword [edi + 4]
sub ecx, dword [edi + 0xc]
push esi
push dword [esp + 0x24]
add ecx, eax
jmp 0x44eae7
xor eax, eax
pop edi
add esp, 8
ret 0xc
Function at 0x44ec70
Capabilities:
Read file on windows

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
push esi
push edi
cmp dword [ebx + 0x14], 0
jne 0x44ec92
push ebx
call fcn.0044db00
mov dword [ebx + 0x14], 1
mov dword [ebx + 0xc], 0
mov ebp, dword [ebx + 0xc]
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x1c]
sub ecx, ebp
add ecx, dword [ebx + 0x10]
cmp ebp, esi
jl 0x44ed0e
mov eax, esi
sub eax, 1
je 0x44ecfa
sub eax, 1
je 0x44ece4
sub eax, 2
je 0x44ecd0
push esi
push ecx
push dword [esp + 0x20]
call fcn.00423fc0
add esp, 0xc
mov eax, esi
sub dword [ebx + 0xc], esi
pop edi
pop esi
pop ebp
pop ebx
ret 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx]
pop edi
mov dword [eax], ecx
mov eax, esi
sub dword [ebx + 0xc], esi
pop esi
pop ebp
pop ebx
ret 0xc
mov eax, dword [esp + 0x18]
mov cx, word [ecx]
pop edi
mov word [eax], cx
mov eax, esi
sub dword [ebx + 0xc], esi
pop esi
pop ebp
pop ebx
ret 0xc
mov dl, byte [ecx]
mov eax, esi
mov ecx, dword [esp + 0x18]
pop edi
mov byte [ecx], dl
sub dword [ebx + 0xc], esi
pop esi
pop ebp
pop ebx
ret 0xc
mov eax, dword [esp + 0x18]
push ebp
push ecx
push eax
call fcn.00423fc0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov edx, dword [ebx + 8]
add eax, ebp
mov ecx, dword [ebx]
sub esi, ebp
mov dword [esp + 0x18], eax
push 0
cmp esi, edx
jl 0x44ed56
lea edx, [esp + 0x18]
push edx
push esi
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
pop edi
pop esi
add eax, ebp
mov dword [ebx + 0xc], 0
pop ebp
pop ebx
ret 0xc
lea eax, [esp + 0x18]
push eax
push edx
push dword [ebx + 4]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0x14]
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
cmp esi, eax
jle 0x44ed76
mov esi, eax
mov eax, dword [esp + 0x18]
push esi
push dword [ebx + 4]
push eax
call fcn.00423fc0
sub dword [ebx + 0xc], esi
lea eax, [esi + ebp]
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
ret 0xc
Function at 0x44eda0
Capabilities:
Read file on windows

Disassembly:
push ecx
push esi
mov esi, dword [esp + 0xc]
mov dword [esp + 4], 0
cmp dword [esi + 4], 0
je 0x44edc7
push 1
lea eax, [esp + 0x10]
push eax
push esi
call fcn.0044ec70
mov dword [esp + 4], eax
jmp 0x44ede1
push 0
lea eax, [esp + 8]
push eax
push 1
lea eax, [esp + 0x18]
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 4]
cmp eax, 1
jne 0x44ee98
mov cl, byte [esp + 0xc]
test cl, cl
js 0x44ee06
mov eax, dword [esp + 0x10]
pop esi
mov byte [eax], cl
mov byte [eax + 1], 0
mov eax, 1
pop ecx
ret 8
mov al, cl
and al, 0xe0
push edi
cmp al, 0xc0
jne 0x44ee16
mov edi, 2
jmp 0x44ee32
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x44ee25
mov edi, 3
jmp 0x44ee32
mov al, cl
and al, 0xf8
cmp al, 0xf0
jne 0x44ee84
mov edi, 4
mov eax, dword [esp + 0x14]
push ebx
lea ebx, [edi - 1]
mov byte [eax], cl
inc eax
cmp dword [esi + 4], 0
je 0x44ee5e
push ebx
push eax
push esi
call fcn.0044ec70
mov ecx, eax
xor eax, eax
cmp ecx, ebx
pop ebx
setne al
dec eax
and eax, edi
pop edi
pop esi
pop ecx
ret 8
push 0
lea ecx, [esp + 0x10]
push ecx
push ebx
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [esp + 0xc]
xor eax, eax
cmp ecx, ebx
pop ebx
setne al
dec eax
and eax, edi
pop edi
pop esi
pop ecx
ret 8
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov word [eax], 0x3f
mov eax, 1
pop ecx
ret 8
xor eax, eax
pop esi
pop ecx
ret 8
Function at 0x45292d
Capabilities:
Check os version

Disassembly:
sub esp, 0x114
push ebx
push ebp
push esi
push edi
push dword [0x5760b4]
call fcn.00460dd0
xor ebx, ebx
mov esi, eax
cmp dword [0x575404], ebx
jne 0x4529ff
xor ebp, ebp
inc ebp
mov dword [0x575404], ebp
call fcn.00456323
mov edi, 0xa8
push edi
push ebx
push 0x575358
call fcn.00420840
add esp, 0xc
mov dword [0x575358], 0x13
lea eax, [esp + 0x10]
mov dword [0x57535c], edi
mov dword [0x575368], 0x452878
mov dword [0x57536c], 0x452bbd
push eax
mov dword [0x5753c0], 0x452850
mov dword [0x5753c4], 0x452b02
mov dword [0x575364], 0x45282b
mov dword [0x5753e8], 0x452895
mov dword [0x575408], ebp
mov dword [esp + 0x14], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4529ff
cmp dword [esp + 0x20], ebp
je 0x4529f9
cmp dword [esp + 0x20], 2
jne 0x4529ff
cmp dword [esp + 0x14], 5
jb 0x4529f9
jne 0x4529ff
cmp dword [esp + 0x18], ebx
jne 0x4529ff
mov dword [0x575408], ebx
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x138]
push eax
lea eax, [esp + 0x138]
push eax
call fcn.0045ac45
mov eax, dword [esp + 0x140]
push ebx
push dword [0x5738a4]
or eax, 0x50010000
push 0xffffffffffffffff
push dword [esi]
push dword [esp + 0x148]
push dword [esp + 0x148]
push dword [esp + 0x148]
push dword [esp + 0x148]
push eax
push ebx
push str.BUTTON
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edi, eax
test edi, edi
je 0x452ad3
mov ebp, dword [esp + 0x128]
push ebp
push dword [0x5760b8]
call fcn.00460e61
mov esi, dword [esp + 0x13c]
mov ebx, eax
mov dword [ebx + 0x10], esi
test esi, esi
je 0x452aa4
push esi
call fcn.0045c8b4
test eax, eax
je 0x452aa4
push 0
push 0
push esi
call fcn.0045c4f8
jmp 0x452aa6
xor eax, eax
push 0x452582
push 0xfffffffffffffffc
mov dword [ebx + 0x18], eax
and dword [ebx + 0x14], 0
and dword [ebx + 0x1c], 0
push edi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 0x575358
push edi
push ebx
push ebp
mov dword [0x575400], eax
call fcn.0045616d
mov edi, eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret 0x1c
Function at 0x453203
Capabilities:
Hide graphical window

Disassembly:
push ebx
push ebp
push esi
push dword [0x5760b4]
call fcn.00460dd0
xor ebx, ebx
mov ebp, eax
cmp dword [0x5754b8], ebx
jne 0x453297
mov esi, 0xa8
push esi
push ebx
push 0x575410
call fcn.00420840
add esp, 0xc
mov dword [0x575414], esi
mov esi, dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [0x575410], 0xa
mov dword [0x575418], 0x452d91
push 0x7f89
push ebx
mov dword [0x575488], 0x456294
mov dword [0x57548c], 0x45626e
mov dword [0x57541c], 0x452db0
mov dword [0x5754a0], 0x452dd0
call esi
mov dword [0x5754b8], eax
test eax, eax
jne 0x453297
push 0x7f00
push ebx
call esi
mov dword [0x5754b8], eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.0045ac45
push ebx
push dword [0x5738a4]
push 0xffffffffffffffff
push dword [ebp]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x30]
push 0x40000000
push dword [esp + 0x48]
push str.STATIC
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ebx, eax
test ebx, ebx
je 0x453363
push edi
push dword [esp + 0x14]
push dword [0x5760b8]
call fcn.00460e61
mov edi, eax
push 8
or dword [edi + 0x10], 0xffffffff
call dword [sym.imp.USER32.dll_GetSysColor]
push 0x14
push 0
mov dword [edi + 0x14], eax
push dword [0x5738a0]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [ebp + 8]
mov esi, eax
push 0x575410
push ebx
push edi
push dword [esp + 0x20]
mov dword [esi], ecx
mov ecx, dword [esp + 0x40]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esi + 0xc], ecx
mov byte [esi + 0x10], 0
mov dword [edi + 0x1c], esi
call fcn.0045616d
push 0x452eb6
push 0xfffffffffffffffc
push dword [edi]
mov ebx, eax
call dword [sym.imp.USER32.dll_SetWindowLongW]
push 1
mov dword [esi + 8], eax
push dword [edi]
call dword [sym.imp.USER32.dll_ShowWindow]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
ret 0x20

Function at 0x453c09
Capabilities:
Get graphical window text

Disassembly:
push ebx
push dword [esp + 8]
push dword [0x5760b8]
call fcn.00460e39
mov ebx, eax
test ebx, ebx
je 0x453c6d
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + 0x18]
test eax, eax
je 0x453c32
push dword [esp + 0xc]
push ebx
call eax
jmp 0x453c6d
push esi
push edi
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
push dword [esp + 0x14]
mov edi, eax
push edi
call fcn.00461840
mov esi, eax
lea ecx, [edi + 1]
push ecx
xor eax, eax
push esi
mov word [esi], ax
push dword [ebx]
call dword [sym.imp.USER32.dll_GetWindowTextW]
push esi
call fcn.00415a8e
pop ecx
sub edi, eax
push edi
call fcn.004618e0
pop edi
pop esi
pop ebx
ret 8
Function at 0x4570c6
Capabilities:
Get disk information
Get file attributes

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x45c
push esi
or esi, 0xffffffff
push edi
mov edi, esi
test eax, eax
je 0x45720e
xor ecx, ecx
cmp word [eax], cx
je 0x45720e
push 0x104
push eax
lea eax, [esp + 0x10]
push eax
call fcn.004ff605
xor eax, eax
mov word [esp + 0x21c], ax
lea eax, [esp + 0x14]
push eax
call fcn.00415a8e
add esp, 0x10
lea ecx, [esp + eax*2 + 6]
cmp eax, 2
je 0x45711f
cmp eax, 3
jne 0x457159
cmp word [esp + 0xa], 0x3a
jne 0x457159
cmp eax, 2
jne 0x45713d
lea eax, [esp + 8]
push 0x524398
push eax
call fcn.004ff5d4
pop ecx
pop ecx
lea eax, [esp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jbe 0x45720e
push 0xfffffffffffffffe
pop edi
jmp 0x45720e
push ebx
push ebp
push 0x5c
pop ebp
push 0x2f
pop ebx
movzx eax, word [ecx]
cmp ax, bp
je 0x45716e
cmp ax, bx
jne 0x457178
xor eax, eax
mov word [ecx], ax
sub ecx, 2
jmp 0x457161
lea eax, [esp + 0x21c]
push eax
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, esi
je 0x4571b7
test byte [esp + 0x21c], 0x10
je 0x45719e
push 0xfffffffffffffffe
pop edi
jmp 0x4571ae
mov esi, dword [esp + 0x238]
xor edi, edi
or edi, dword [esp + 0x23c]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x45720c
cmp word [esp + 0x10], bp
jne 0x4571c5
cmp word [esp + 0x12], bp
je 0x4571e4
cmp word [esp + 0x10], bx
jne 0x4571d3
cmp word [esp + 0x12], bx
je 0x4571e4
push 0x2e
pop eax
cmp word [esp + 0x10], ax
jne 0x45720c
cmp word [esp + 0x12], ax
jne 0x45720c
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, esi
je 0x4571f9
test al, 0x10
je 0x45720c
jmp 0x457209
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jbe 0x45720c
push 0xfffffffffffffffe
pop edi
pop ebp
pop ebx
mov eax, edi
mov edx, esi
pop edi
pop esi
add esp, 0x45c
ret 4

Function at 0x4572a4
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
cmp dword [ebp + 8], 0
je 0x45731c
push 0x104
push dword [ebp + 8]
lea eax, [ebp - 0x20c]
push eax
call fcn.004ff605
xor eax, eax
mov word [ebp - 4], ax
lea eax, [ebp - 0x20c]
push eax
call fcn.00415a8e
lea ecx, [ebp - 0x20c]
add esp, 0x10
lea eax, [ecx + eax*2]
jmp 0x4572fd
movzx ecx, word [eax - 2]
cmp ecx, 0x20
je 0x4572fa
cmp ecx, 0x5c
je 0x4572fa
cmp ecx, 0x2f
jne 0x457307
add eax, 0xfffffffe
lea ecx, [ebp - 0x20c]
cmp eax, ecx
ja 0x4572e7
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x20c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
jmp 0x45731e
xor eax, eax
leave
ret 4
Function at 0x457394
Capabilities:
Check if file exists

Disassembly:
xor eax, eax
push ebp
mov ebp, eax
mov eax, dword [0x575854]
push esi
test eax, eax
jne 0x4573b9
push fcn.004574c1
push 0x10
push 0x258
call fcn.00460ede
mov dword [0x575854], eax
push dword [esp + 0xc]
push eax
call fcn.00460e61
mov esi, eax
test esi, esi
je 0x4574ba
push edi
mov edi, dword [esp + 0x14]
test edi, edi
jne 0x4573db
mov edi, 0x527268
push ebx
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x4573eb
xor eax, eax
cmp word [ebx], ax
jne 0x4573f0
mov ebx, 0x53e090
push edi
call fcn.00415a8e
push ebx
mov dword [esp + 0x24], eax
call fcn.00415a8e
add eax, dword [esp + 0x24]
pop ecx
pop ecx
lea eax, [eax*2 + 4]
push eax
xor eax, eax
push eax
push dword [0x5738a0]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esp + 0x18], eax
test eax, eax
je 0x4574a1
push edi
push eax
call fcn.004ff5b2
mov eax, dword [esp + 0x24]
pop ecx
pop ecx
test eax, eax
je 0x457451
cmp word [edi + eax*2 - 2], 0x5c
mov edi, dword [esp + 0x18]
je 0x457455
push 0x524398
push edi
call fcn.004ff5d4
pop ecx
pop ecx
jmp 0x457455
mov edi, dword [esp + 0x18]
push ebx
push edi
call fcn.004ff5d4
pop ecx
pop ecx
lea eax, [esi + 8]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x457479
xor eax, eax
mov ebp, esi
mov dword [esi + 4], eax
jmp 0x45748f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x45748d
mov dword [esi + 4], 1
mov ebp, esi
xor eax, eax
push edi
push eax
push dword [0x5738a0]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test ebp, ebp
jne 0x4574b8
cmp dword [esp + 0x14], 0xffffffff
je 0x4574ac
mov esi, dword [esp + 0x14]
push esi
push dword [0x575854]
call fcn.00460dff
pop ebx
pop edi
pop esi
mov eax, ebp
pop ebp
ret 0xc