joyce8/EMBER2024-capa huggingface dataset:
Function at 0x455930
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1058
call fcn.00462b60
mov eax, dword [0x5b327c]
xor eax, ebp
mov dword [ebp - 4], eax
xorps xmm0, xmm0
mov dword [ebp - 0x1058], 0x44
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x1058]
push edi
mov edi, dword [ebp + 0xc]
push eax
movlpd qword [ebp - 0x1054], xmm0
movlpd qword [ebp - 0x104c], xmm0
movlpd qword [ebp - 0x1044], xmm0
movlpd qword [ebp - 0x103c], xmm0
movlpd qword [ebp - 0x1034], xmm0
movlpd qword [ebp - 0x102c], xmm0
movlpd qword [ebp - 0x1024], xmm0
movlpd qword [ebp - 0x101c], xmm0
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
mov eax, 5
mov dword [ebp - 0x102c], 1
push 0x1000
mov word [ebp - 0x1028], ax
xorps xmm0, xmm0
lea eax, [ebp - 0x1004]
push 0
push eax
movups xmmword [ebp - 0x1014], xmm0
call fcn.0050c770
add esp, 0xc
cmp dword [edi + 0x10], 0
je 0x455a0d
cmp dword [edi + 0x14], 8
jb 0x4559ed
mov edi, dword [edi]
cmp dword [esi + 0x14], 8
jb 0x4559f5
mov esi, dword [esi]
push edi
push esi
lea eax, [ebp - 0x1004]
push str.__s___s
push eax
call fcn.00451b50
add esp, 0x10
jmp 0x455a2a
cmp dword [esi + 0x14], 8
jb 0x455a15
mov esi, dword [esi]
push esi
lea eax, [ebp - 0x1004]
push 0x56ddcc
push eax
call fcn.00451b50
add esp, 0xc
lea eax, [ebp - 0x1014]
push eax
lea eax, [ebp - 0x1058]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1004]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
cmp eax, 1
jne 0x455a80
push dword [ebp - 0x1010]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x1014]
call esi
pop edi
mov al, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor al, al
pop edi
xor ecx, ebp
pop esi
call fcn.004626cb
mov esp, ebp
pop ebp
ret
Function at 0x455c10
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x559bb6
mov eax, dword fs:[0]
push eax
sub esp, 0x2dc
mov eax, dword [0x5b327c]
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]
lea eax, [ebp - 0x2e0]
push 0x2d0
push 0
push eax
call fcn.0050c770
mov esi, dword [sym.imp.SHLWAPI.dll_AssocQueryStringW]
lea eax, [ebp - 0x2e8]
add esp, 0xc
mov dword [ebp - 0x2e8], 0x168
push eax
lea eax, [ebp - 0x2e0]
push eax
push 0x568dc0
push str.http
push 1
push 0
call esi
xor ebx, ebx
test eax, eax
setns bl
test eax, eax
jns 0x455cb2
lea eax, [ebp - 0x2e8]
push eax
lea eax, [ebp - 0x2e0]
push eax
push 0
push str.iexplore.exe
push 2
push 2
call esi
xor ebx, ebx
test eax, eax
setns bl
test ebx, ebx
je 0x455df6
call fcn.00412080
mov ecx, eax
test ecx, ecx
je 0x455e14
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x2e4], eax
lea eax, [ebp - 0x2e0]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x2e4]
call fcn.0040a850
test al, al
jne 0x455d22
lea ecx, [ebp - 0x2e0]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x455d00
sub ecx, edx
lea eax, [ebp - 0x2e0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x2e4]
call fcn.004171c0
mov esi, dword [ebp - 0x2e4]
mov dword [ebp - 4], 1
cmp dword [esi - 0xc], 0
jge 0x455d3a
or eax, 0xffffffff
jmp 0x455d55
push str..exe
push esi
call fcn.0050ca42
add esp, 8
test eax, eax
jne 0x455d51
or eax, 0xffffffff
jmp 0x455d55
sub eax, esi
sar eax, 1
mov ecx, dword [esi - 0xc]
test eax, eax
jle 0x455d86
sub ecx, eax
add eax, 4
add ecx, 4
push ecx
push eax
lea ecx, [ebp - 0x2e4]
call fcn.00453b00
push 1
push 0
lea ecx, [ebp - 0x2e4]
call fcn.00453b00
mov esi, dword [ebp - 0x2e4]
push 1
push 0
push dword [edi]
push esi
push 0x568dc0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jle 0x455dc0
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x455df6
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x455df6
push 0xffffffffffffffff
push 0
push 0
push 0
push 0
push 1
push dword [edi]
push esi
call fcn.00457ac0
add esp, 0x20
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x455df6
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
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.004626cb
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040a830
int3
Function at 0x455eb0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x414
mov eax, dword [0x5b327c]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x414], eax
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0x408], esi
mov dword [ebp - 0x408], ecx
push edi
mov edi, dword [ebp + 0x18]
test ecx, ecx
je 0x455f51
test ebx, ebx
je 0x455f51
test eax, eax
je 0x455f51
push 0x400
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.0050c770
add esp, 0xc
mov dword [ebp - 0x410], 1
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x40c], 0x400
push eax
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x410]
push eax
push dword [ebp - 0x414]
push ebx
push dword [ebp - 0x408]
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
jne 0x455f51
lea eax, [ebp - 0x404]
jmp 0x455f5b
test edi, edi
mov eax, 0x566bb8
cmovne eax, edi
push eax
mov ecx, esi
call fcn.00404130
mov ecx, dword [ebp - 4]
mov eax, esi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004626cb
mov esp, ebp
pop ebp
ret
Function at 0x457370
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x559e13
mov eax, dword fs:[0]
push eax
sub esp, 0xcc
mov eax, dword [0x5b327c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
call fcn.00470ad0
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 8]
call eax
movzx eax, al
sub eax, 1
jne 0x4574ef
push 0x60
push str.d:jenkins.jenkinsworkspaceweiduangamemicrogamemicrogamebox_srcmicrogameboxutilsutils.cc
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
call fcn.00418e10
push 3
push 0x568ac4
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
call fcn.00418e10
mov byte [ebp - 4], 2
call fcn.00470ad0
mov edi, eax
lea ecx, [ebp - 0xd8]
push 0x404
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00404570
mov esi, eax
push 0x56dba8
push esi
mov byte [ebp - 4], 3
call fcn.00403250
mov ecx, dword [ebp + 8]
mov edx, 0x568a98
test ecx, ecx
cmovne edx, ecx
push edx
push esi
call fcn.00403250
mov eax, dword [edi]
add esp, 0x10
mov ecx, edi
push esi
call dword [eax + 0x1c]
lea ecx, [ebp - 0xd8]
call fcn.00407160
mov edx, dword [ebp - 0x14]
mov byte [ebp - 4], 1
cmp edx, 0x10
jb 0x457497
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x45748d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x45753f
push edx
push ecx
call fcn.0046282d
add esp, 8
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov byte [ebp - 4], 0
cmp edx, 0x10
jb 0x4574dd
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4574d3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x457544
push edx
push ecx
call fcn.0046282d
add esp, 8
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
push dword [ebp + 8]
push reloc.gdiplus.dll_Ordinal_1
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
mov edx, dword [ebp + 8]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45751f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret
call fcn.00510d59
call fcn.00510d59
int3
Function at 0x457ac0
Capabilities:
Check if file exists
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x5a33c0
push 0x50e350
mov eax, dword fs:[0]
push eax
sub esp, 0x848
mov eax, dword [0x5b327c]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x20]
mov dword [ebp - 4], 0
test esi, esi
je 0x457c20
cmp word [esi], 0
je 0x457c20
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x457b20
sub ecx, edx
sar ecx, 1
cmp ecx, 0x104
ja 0x457c20
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x457c20
push 0x800
push 0
lea eax, [ebp - 0x81c]
push eax
call fcn.0050c770
push esi
push 0x56da28
push 0x3ff
lea eax, [ebp - 0x81c]
push eax
call fcn.00458450
push 0x3c
push 0
lea eax, [ebp - 0x858]
push eax
call fcn.0050c770
add esp, 0x28
mov dword [ebp - 0x858], 0x3c
lea eax, [ebp - 0x81c]
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x84c], 0x568dc0
mov dword [ebp - 0x844], ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x83c], eax
mov dword [ebp - 0x854], 0x440
lea eax, [ebp - 0x858]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
mov esi, eax
test esi, esi
je 0x457be7
cmp dword [ebp + 0x1c], 0
je 0x457be7
push 0xffffffffffffffff
push dword [ebp - 0x820]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
je 0x457bfc
test esi, esi
je 0x457c0c
push edi
push dword [ebp - 0x820]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test esi, esi
je 0x457c0c
push dword [ebp - 0x820]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xfffffffe
mov eax, esi
jmp 0x457c29
mov dword [ebp - 4], 0xfffffffe
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret

Function at 0x457c50
Capabilities:
Check if file exists
Delete file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push dword [esi]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x457c7b
push 0x80
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
pop esi
pop ebp
ret
mov eax, 1
pop esi
pop ebp
ret
Function at 0x4580a0
Capabilities:
Check if file exists
Delete file
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4580e8
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4580e8
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x4580d8
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4580e8
push 4
push 0
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
xor eax, eax
pop esi
pop ebp
ret
mov eax, 1
pop esi
pop ebp
ret
Function at 0x4586b0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x559fa8
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x5b327c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor bl, bl
cmp dword [eax + 0x14], 8
jb 0x4586e7
mov eax, dword [eax]
test eax, eax
jne 0x458708
push eax
push 0x5688d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
call fcn.00418e10
jmp 0x45871a
push 0xfde9
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0047b920
add esp, 0xc
mov edx, dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
mov esi, dword [ebp - 0x28]
cmp edx, 0x10
mov eax, dword [ebp - 0x18]
cmovae ecx, esi
mov dword [ebp - 4], 0
cmp byte [eax + ecx], 0x5c
je 0x45874e
push 1
push 0x568aa8
lea ecx, [ebp - 0x28]
call fcn.00418b00
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
cmp edx, 0x10
lea eax, [ebp - 0x28]
cmovae eax, esi
push eax
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
je 0x45876e
mov bl, 1
lea ecx, [ebp - 0x28]
call fcn.00404f30
jmp 0x4587cc
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x458764
cmp dword [ebp - 0x14], 0x10
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.dbghelp.dll_MakeSureDirectoryPathExists]
mov edx, dword [ebp - 0x14]
cmp eax, 1
sete bl
cmp edx, 0x10
jb 0x4587cc
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4587c2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4587e9
push edx
push ecx
call fcn.0046282d
add esp, 8
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret
call fcn.00510d59
int3
Function at 0x459d50
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
cmp dword [eax + 0x14], 8
jb 0x459d5e
mov eax, dword [eax]
push edi
push 0x56d870
push eax
call fcn.0051ed73
mov edi, eax
add esp, 8
test edi, edi
jne 0x459d7f
call fcn.00510e22
pop edi
mov eax, dword [eax]
neg eax
pop ebp
ret
mov eax, dword [ebp + 0xc]
push ebx
push esi
cmp dword [eax + 0x14], 0x10
lea ebx, [eax + 0x10]
jb 0x459d8f
mov eax, dword [eax]
push edi
push dword [ebx]
push 1
push eax
call fcn.0051fca9
push edi
mov esi, eax
call fcn.0051ef9d
add esp, 0x14
xor eax, eax
cmp esi, dword [ebx]
cmovne esi, eax
mov eax, esi
pop esi
pop ebx
pop edi
pop ebp
ret

Function at 0x459dc0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x14]
mov edx, 0x566bb8
test eax, eax
cmovne edx, eax
cmp dword [ebp + 8], 0
je 0x459e1d
cmp dword [ebp + 0xc], 0
je 0x459e1d
cmp dword [ebp + 0x10], 0
je 0x459e1d
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp + 0x14], eax
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x459df0
sub ecx, dword [ebp + 0x14]
sar ecx, 1
lea eax, [ecx + ecx]
push eax
push edx
push 1
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
neg eax
sbb eax, eax
inc eax
pop ebp
ret
xor eax, eax
pop ebp
ret

Function at 0x459ee0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x5b327c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x38], 0
je 0x459f81
cmp byte [esi + 0x3d], 0
je 0x459f81
mov eax, dword [esi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x459f37
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
mov edx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x459f49
sub eax, 1
je 0x459f4d
sub eax, 2
je 0x459f81
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x459f6a
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.0051fca9
add esp, 0x10
cmp edi, eax
jne 0x459f37
cmp byte [esi + 0x3d], 0
pop edi
sete al
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
xor ecx, ebp
pop esi
call fcn.004626cb
mov esp, ebp
pop ebp
ret
Function at 0x45a490
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x55a248
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x5b327c]
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 eax, eax
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x54], 0x350034
mov dword [ebp - 0x50], 0x370034
mov dword [ebp - 0x4c], 0x460036
mov dword [ebp - 0x48], 0x300038
mov dword [ebp - 0x44], 0x330038
mov dword [ebp - 0x40], 0x370044
mov dword [ebp - 0x3c], 0x420034
mov dword [ebp - 0x38], 0x320041
mov dword [ebp - 0x34], 0x410038
mov dword [ebp - 0x30], 0x440032
mov dword [ebp - 0x2c], 0x380044
mov dword [ebp - 0x28], 0x440045
mov dword [ebp - 0x24], 0x390033
mov dword [ebp - 0x20], 0x370039
mov dword [ebp - 0x1c], 0x370033
mov dword [ebp - 0x18], 0x370042
mov word [ebp - 0x14], ax
call fcn.00412080
mov ecx, eax
test ecx, ecx
je 0x45a610
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x54]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x58]
call fcn.0040a850
test al, al
jne 0x45a58d
lea eax, [ebp - 0x54]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x45a571
sub eax, edx
lea ecx, [ebp - 0x58]
sar eax, 1
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.004171c0
push esi
lea ecx, [ebp - 0x5c]
mov dword [ebp - 4], 1
call fcn.00404130
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.0047b090
mov edx, dword [ebp - 0x5c]
or esi, 0xffffffff
add esp, 0xc
mov byte [ebp - 4], 1
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45a5d3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 4], 0xffffffff
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], esi
dec esi
test esi, esi
jg 0x45a5f2
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
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.004626cb
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040a830
int3
Function at 0x45abb0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x5b327c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
cmp ebx, 0xffffffff
jne 0x45abe0
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x20]
push edi
mov ecx, dword [eax]
test ecx, ecx
je 0x45ac1c
mov edx, dword [esi + 0x30]
mov edi, dword [edx]
lea eax, [edi + ecx]
cmp ecx, eax
jae 0x45ac1c
lea ecx, [edi - 1]
mov dword [edx], ecx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], bl
pop edi
pop esi
mov eax, ebx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x4c], 0
je 0x45ad01
mov edi, dword [esi + 0xc]
lea eax, [esi + 0x3c]
cmp dword [edi], eax
jne 0x45ac44
mov edx, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
sub edx, ecx
mov dword [edi], ecx
mov eax, dword [esi + 0x1c]
mov dword [eax], ecx
mov eax, dword [esi + 0x2c]
mov dword [eax], edx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x45ac77
push dword [esi + 0x4c]
movsx eax, bl
push eax
call fcn.0051f3c6
add esp, 8
or ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret 4
lea eax, [ebp - 0x2c]
mov byte [ebp - 0x28], bl
mov edx, dword [ecx]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x27]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x1c]
test eax, eax
js 0x45ad01
cmp eax, 1
jle 0x45acd4
cmp eax, 3
jne 0x45ad01
push dword [esi + 0x4c]
push dword [ebp - 0x28]
call fcn.00451a50
add esp, 8
or ecx, 0xffffffff
test al, al
cmovne ecx, ebx
pop edi
pop esi
mov eax, ecx
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004626cb
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x2c]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x45acf1
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.0051fca9
add esp, 0x10
cmp edi, eax
jne 0x45ad01
lea eax, [ebp - 0x28]
mov byte [esi + 0x3d], 1
cmp dword [ebp - 0x30], eax
jne 0x45ac07
mov ecx, dword [ebp - 4]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004626cb
mov esp, ebp
pop ebp
ret 4
Function at 0x45b730
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push edi
mov edi, ecx
cmp dword [edi + 0x38], 0
je 0x45b754
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0045b820
pop edi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [edi + 0x1c]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov eax, dword [eax]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], eax
test eax, eax
je 0x45b775
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
jmp 0x45b777
xor eax, eax
cdq
mov dword [ebp + 0x10], eax
mov ecx, edx
mov dword [ebp - 4], ecx
test ebx, ebx
jl 0x45b7ff
jg 0x45b78a
test esi, esi
je 0x45b7ff
test ecx, ecx
jl 0x45b7cc
jg 0x45b794
test eax, eax
je 0x45b7cc
cmp ebx, ecx
jg 0x45b7a6
jl 0x45b79e
cmp esi, eax
jae 0x45b7a6
mov eax, esi
mov dword [ebp + 0x10], esi
mov dword [ebp - 4], ebx
push eax
push dword [ebp - 8]
push dword [ebp + 8]
call fcn.0050d1a0
mov ecx, dword [ebp + 0x10]
add esp, 0xc
mov eax, dword [edi + 0x2c]
add dword [ebp + 8], ecx
sub esi, ecx
sbb ebx, dword [ebp - 4]
sub dword [eax], ecx
mov eax, dword [edi + 0x1c]
add dword [eax], ecx
jmp 0x45b7d2
mov eax, dword [ebp + 8]
mov dword [ebp + 8], eax
test ebx, ebx
jl 0x45b7ff
jg 0x45b7dc
test esi, esi
je 0x45b7ff
cmp dword [edi + 0x4c], 0
je 0x45b7ff
mov ecx, edi
call fcn.0045a390
push dword [edi + 0x4c]
push esi
push 1
push dword [ebp + 8]
call fcn.0051f696
add esp, 0x10
sub esi, eax
sbb ebx, 0
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
sub eax, esi
pop esi
sbb edx, ebx
pop ebx
pop edi
mov esp, ebp
pop ebp
ret 0xc