joyce8/EMBER2024-capa huggingface dataset:
Function at 0x55f270
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x60
mov eax, dword [0x629688]
xor eax, esp
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x6c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x70]
push edi
mov edi, dword [esp + 0x78]
lea ecx, [esp + 0x1c]
and ecx, 7
push 0x48
lea ebx, [esp + 0x28]
sub ebx, ecx
push 0
push ebx
mov dword [esp + 0x1c], eax
call fcn.0042b780
mov edx, dword [esi + 0x18]
and edx, 0x3f
mov eax, 0x40
sub eax, edx
add esp, 0xc
cmp eax, 8
ja 0x55f2c1
add eax, 0x40
mov ecx, dword [esi + 0x14]
mov ebp, dword [esi + 0x18]
add ecx, ecx
add ecx, ecx
add ecx, ecx
mov edx, ebp
shr edx, 0x1d
or ecx, edx
mov byte [ebx], 0x80
lea edx, [ebp*8]
mov dword [esp + 0x18], edx
mov edx, ecx
shr edx, 0x18
mov byte [eax + ebx - 8], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + ebx - 7], dl
mov edx, ecx
shr edx, 8
mov byte [eax + ebx - 6], dl
mov byte [eax + ebx - 5], cl
mov ecx, dword [esp + 0x18]
mov edx, ecx
shr edx, 0x18
mov byte [eax + ebx - 4], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + ebx - 3], dl
mov edx, ecx
mov byte [eax + ebx - 1], cl
mov ecx, dword [esp + 0x10]
push ecx
push eax
shr edx, 8
push ebx
push esi
mov byte [eax + ebx - 2], dl
call fcn.0055f070
movzx edx, byte [esi + 3]
mov byte [edi], dl
movzx eax, byte [esi + 2]
mov byte [edi + 1], al
mov ecx, dword [esi]
shr ecx, 8
mov byte [edi + 2], cl
movzx edx, byte [esi]
mov byte [edi + 3], dl
movzx eax, byte [esi + 7]
mov byte [edi + 4], al
movzx ecx, byte [esi + 6]
mov byte [edi + 5], cl
mov edx, dword [esi + 4]
shr edx, 8
mov byte [edi + 6], dl
movzx eax, byte [esi + 4]
mov byte [edi + 7], al
movzx ecx, byte [esi + 0xb]
mov byte [edi + 8], cl
movzx edx, byte [esi + 0xa]
mov byte [edi + 9], dl
mov eax, dword [esi + 8]
shr eax, 8
mov byte [edi + 0xa], al
movzx ecx, byte [esi + 8]
mov byte [edi + 0xb], cl
movzx edx, byte [esi + 0xf]
mov byte [edi + 0xc], dl
movzx eax, byte [esi + 0xe]
mov byte [edi + 0xd], al
mov ecx, dword [esi + 0xc]
shr ecx, 8
mov byte [edi + 0xe], cl
movzx edx, byte [esi + 0xc]
mov byte [edi + 0xf], dl
movzx eax, byte [esi + 0x13]
mov byte [edi + 0x10], al
movzx ecx, byte [esi + 0x12]
mov byte [edi + 0x11], cl
mov edx, dword [esi + 0x10]
shr edx, 8
mov byte [edi + 0x12], dl
movzx eax, byte [esi + 0x10]
push esi
mov byte [edi + 0x13], al
call fcn.0055f1a0
push 0x140
push 0
add esi, 0x60
push esi
call fcn.0042b780
mov ecx, dword [esp + 0x8c]
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586d1b
add esp, 0x60
ret

Function at 0x569440
Capabilities:
Hash data with md5

Disassembly:
xor eax, eax
push esi
mov esi, dword [esp + 8]
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 8], 0x67452301
mov dword [esi + 0xc], 0xefcdab89
mov dword [esi + 0x10], 0x98badcfe
mov dword [esi + 0x14], 0x10325476
mov dword [esi + 4], eax
call fcn.0056dec0
cmp eax, 0x17
je 0x56947e
mov dword [esi], 0x56fdc0
pop esi
ret
mov dword [esi], 0x569410
pop esi
ret
Function at 0x569490
Capabilities:
Hash data with md5

Disassembly:
sub esp, 0x4c
mov eax, dword [0x629688]
xor eax, esp
mov dword [esp + 0x48], eax
push ebx
mov ebx, dword [esp + 0x58]
push ebp
push esi
mov esi, dword [esp + 0x5c]
mov eax, dword [esi + 0x18]
shr eax, 3
and eax, 0x3f
cmp eax, 0x38
push edi
mov edi, 0x38
jb 0x5694c2
mov edi, 0x78
sub edi, eax
push edi
lea eax, [esp + 0x14]
push 0
push eax
call fcn.0042b780
add esp, 0xc
mov byte [esp + 0x10], 0x80
lea ecx, [esp + edi + 0x11]
lea eax, [esi + 0x1a]
mov ebp, 2
movzx edx, byte [eax - 2]
mov byte [ecx - 1], dl
movzx edx, byte [eax - 1]
mov byte [ecx], dl
movzx edx, byte [eax]
mov byte [ecx + 1], dl
movzx edx, byte [eax + 1]
mov byte [ecx + 2], dl
add eax, 4
add ecx, 4
sub ebp, 1
jne 0x5694e5
add edi, 8
push edi
lea eax, [esp + 0x14]
push eax
push esi
call fcn.00569310
add esp, 0xc
lea ecx, [ebx + 1]
lea eax, [esi + 0xa]
lea edi, [ebp + 4]
movzx edx, byte [eax - 2]
mov byte [ecx - 1], dl
movzx edx, byte [eax - 1]
mov byte [ecx], dl
movzx edx, byte [eax]
mov byte [ecx + 1], dl
movzx edx, byte [eax + 1]
mov byte [ecx + 2], dl
add eax, 4
add ecx, 4
sub edi, 1
jne 0x569525
xor eax, eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x18], eax
mov dword [esi + 8], 0x67452301
mov dword [esi + 0xc], 0xefcdab89
mov dword [esi + 0x10], 0x98badcfe
mov dword [esi + 0x14], 0x10325476
mov dword [esi + 4], eax
call fcn.0056dec0
cmp eax, 0x17
je 0x569594
pop edi
mov dword [esi], 0x56fdc0
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
xor ecx, esp
call fcn.00586d1b
add esp, 0x4c
ret
mov ecx, dword [esp + 0x58]
pop edi
mov dword [esi], 0x569410
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00586d1b
add esp, 0x4c
ret
Function at 0x5736e0
Capabilities:
Hash data using sha256

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0x6a09e667
mov dword [eax + 4], 0xbb67ae85
mov dword [eax + 8], 0x3c6ef372
mov dword [eax + 0xc], 0xa54ff53a
mov dword [eax + 0x10], 0x510e527f
mov dword [eax + 0x14], 0x9b05688c
mov dword [eax + 0x18], 0x1f83d9ab
mov dword [eax + 0x1c], 0x5be0cd19
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], fcn.00572d30
ret

Function at 0x573730
Capabilities:
Hash data using sha256

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push esi
call fcn.005735f0
mov ecx, dword [ebx]
mov esi, dword [esp + 0x10]
mov eax, ecx
shr eax, 0x18
mov byte [esi], al
mov edx, ecx
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, ecx
shr edx, 8
lea eax, [esi + 1]
mov byte [eax + 1], dl
add eax, 1
mov byte [eax + 1], cl
mov ecx, dword [ebx + 4]
add eax, 1
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax - 1], dl
add eax, 1
mov edx, ecx
shr edx, 0x10
mov byte [eax - 1], dl
add eax, 1
mov edx, ecx
shr edx, 8
mov byte [eax - 1], dl
mov byte [eax], cl
mov ecx, dword [ebx + 8]
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax - 1], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 8
mov byte [eax - 1], dl
mov byte [eax], cl
mov ecx, dword [ebx + 0xc]
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 8
mov byte [eax], dl
mov byte [eax + 1], cl
mov ecx, dword [ebx + 0x10]
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
mov edx, ecx
add eax, 1
shr edx, 8
mov byte [eax], dl
add eax, 1
mov byte [eax], cl
mov ecx, dword [ebx + 0x14]
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax - 1], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 8
mov byte [eax - 1], dl
mov byte [eax], cl
mov ecx, dword [ebx + 0x18]
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 8
mov byte [eax], dl
mov byte [eax + 1], cl
mov ecx, dword [ebx + 0x1c]
add eax, 1
add eax, 1
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 0x10
mov byte [eax], dl
add eax, 1
mov edx, ecx
shr edx, 8
mov byte [eax], dl
mov byte [eax + 1], cl
xor eax, eax
pop esi
mov dword [ebx], 0x6a09e667
mov dword [ebx + 4], 0xbb67ae85
mov dword [ebx + 8], 0x3c6ef372
mov dword [ebx + 0xc], 0xa54ff53a
mov dword [ebx + 0x10], 0x510e527f
mov dword [ebx + 0x14], 0x9b05688c
mov dword [ebx + 0x18], 0x1f83d9ab
mov dword [ebx + 0x1c], 0x5be0cd19
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x68], eax
mov dword [ebx + 0x6c], fcn.00572d30
pop ebx
ret
Function at 0x573da0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
sub esp, 0x10
push ebp
push esi
mov esi, dword [esp + 0x1c]
mov ebp, dword [esi + 0x44]
add ebp, eax
mov ecx, ebp
shr ecx, 4
shl ecx, 4
cmp ecx, dword [esp + 0x30]
mov dword [edx], ecx
jbe 0x573dd1
pop esi
mov eax, 0xa
pop ebp
add esp, 0x10
ret
cmp ebp, 0x10
push edi
jae 0x573e03
test eax, eax
mov ecx, dword [esi + 0x44]
mov edi, dword [esp + 0x38]
lea ecx, [esi + ecx + 0x20]
jle 0x573df7
mov dl, byte [edi]
sub eax, 1
mov byte [ecx], dl
add ecx, 1
add edi, 1
test eax, eax
jg 0x573de6
pop edi
mov dword [esi + 0x44], ebp
pop esi
xor eax, eax
pop ebp
add esp, 0x10
ret
mov eax, dword [esi + 0x44]
mov ebp, 0x10
sub ebp, eax
test ebp, ebp
push ebx
mov ebx, dword [esp + 0x3c]
lea edi, [eax + esi + 0x20]
mov ecx, ebx
mov eax, ebp
jle 0x573e31
mov edi, edi
mov dl, byte [ecx]
sub eax, 1
mov byte [edi], dl
add edi, 1
add ecx, 1
test eax, eax
jg 0x573e20
mov ecx, dword [esi + 0x10]
xor dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x14]
xor dword [esi + 0x28], ecx
xor dword [esi + 0x24], edx
mov ecx, dword [esp + 0x28]
mov edx, dword [esi + 0x1c]
xor dword [esi + 0x2c], edx
lea eax, [esi + 0x20]
push eax
lea eax, [esp + 0x14]
push eax
push ecx
call dword [esp + 0x38]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x1c], edi
mov edi, dword [esp + 0x3c]
mov dword [esi + 0x10], eax
mov dword [esi + 0x18], edx
mov dword [esi + 0x14], ecx
mov dword [edi], eax
mov eax, dword [esp + 0x4c]
mov dword [edi + 4], ecx
add edi, 8
mov dword [edi], edx
mov edx, dword [esp + 0x28]
mov dword [edi + 4], edx
sub eax, ebp
add esp, 0xc
add edi, 8
add ebx, ebp
cmp eax, 0x10
mov dword [esi + 0x44], eax
jb 0x573f2d
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
mov ecx, dword [ebx + 4]
xor eax, dword [esi + 0x10]
mov dword [esp + 0x14], ecx
mov edx, dword [ebx + 8]
xor ecx, dword [esi + 0x14]
add ebx, 8
mov dword [esp + 0x18], edx
mov ebp, dword [ebx + 4]
xor edx, dword [esi + 0x18]
xor ebp, dword [esi + 0x1c]
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x14], ecx
push eax
mov ecx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x2c]
push ecx
push edx
add ebx, 8
mov dword [esp + 0x28], ebp
call dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], ebp
mov dword [edi], eax
mov dword [edi + 4], ecx
add edi, 8
mov dword [edi], edx
mov dword [edi + 4], ebp
add dword [esi + 0x44], 0xfffffff0
add esp, 0xc
add edi, 8
cmp dword [esi + 0x44], 0x10
jae 0x573ea6
lea eax, [esi + 0x20]
mov esi, dword [esi + 0x44]
test esi, esi
jle 0x573f4f
sub ebx, eax
lea esp, [esp]
mov cl, byte [ebx + eax]
sub esi, 1
mov byte [eax], cl
add eax, 1
test esi, esi
jg 0x573f40
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x10
ret
Function at 0x578d10
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x250
mov eax, dword [0x629688]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov byte [ebp - 5], 0
push 0x208
push 0
lea eax, [ebp - 0x210]
push eax
call fcn.005877c0
add esp, 0xc
lea eax, [ebp - 0x210]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x578d69
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp + 8]
call fcn.00408040
mov byte [ebp - 5], 1
mov al, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00586d1b
mov esp, ebp
pop ebp
ret
Function at 0x57e5b0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b62a0
mov eax, dword fs:[0]
push eax
push ecx
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x629688]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 4], 0
push 0
push 0
push 2
push 0
push 1
push 0x40000000
mov ecx, dword [ebp + 8]
call fcn.00408090
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0xffffffff
je 0x57e64d
mov dword [ebp - 0x1c], 0
push 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x57e63c
mov byte [ebp - 0x11], 1
mov eax, dword [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x18], 0
jmp 0x57e665
mov dword [ebp - 4], 0xffffffff
jmp 0x57e675
mov al, byte [ebp - 0x11]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x57fd54
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push esi
test eax, eax
je 0x57fda0
cmp dword [ebp + 0xc], 0
je 0x57fda0
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x57fda0
push edi
push dword [ebp + 0xc]
lea ecx, [ebp + 8]
push str.SELECT_installState_FROM_payloads_WHERE_payloadID___q
push ecx
push dword [eax]
call fcn.005817ae
add esp, 0x10
cmp dword [ebp + 8], 0
mov edi, eax
je 0x57fd98
push dword [ebp + 8]
call fcn.00587dad
pop ecx
mov dword [esi], eax
jmp 0x57fd9b
and dword [esi], 0
mov eax, edi
pop edi
jmp 0x57fda3
push 0xa
pop eax
pop esi
pop ebp
ret

Function at 0x57fda6
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
test eax, eax
je 0x57fddf
cmp dword [ebp + 0xc], 0
je 0x57fddf
cmp dword [ebp + 0x14], 0
je 0x57fddf
cmp dword [ebp + 0x18], 0
je 0x57fddf
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push str.SELECT_value_FROM_payload_data_WHERE_payloadID___q_AND_domain___d_AND_key___q
push dword [ebp + 0x18]
push dword [eax]
call fcn.005817ae
add esp, 0x18
pop ebp
ret
push 0xa
pop eax
pop ebp
ret

Function at 0x57fde4
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
test edx, edx
je 0x57fe26
cmp dword [ebp + 0xc], 0
je 0x57fe26
cmp dword [ebp + 0x14], 0
je 0x57fe26
mov ecx, dword [ebp + 0x10]
test ecx, ecx
js 0x57fe26
cmp ecx, 1
jle 0x57fe0e
lea eax, [ecx - 3]
cmp eax, 4
ja 0x57fe26
push ecx
push dword [ebp + 0xc]
push str.SELECT_payloadID_FROM_dependencies_WHERE_payloadIDb___q_AND_type___d
push dword [ebp + 0x14]
push dword [edx]
call fcn.005815e1
add esp, 0x14
pop ebp
ret
push 0xa
pop eax
pop ebp
ret
Function at 0x580121
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
test eax, eax
je 0x58015a
cmp dword [ebp + 0x10], 0
je 0x58015a
cmp dword [ebp + 0x14], 0
je 0x58015a
cmp dword [ebp + 0x18], 0
je 0x58015a
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push str.SELECT_PayloadID_FROM_PayloadData_WHERE__domain___d_AND_key___q_AND_value___q
push dword [ebp + 0x18]
push dword [eax]
call fcn.005815e1
add esp, 0x18
pop ebp
ret
push 0xa
pop eax
pop ebp
ret

Function at 0x5806b7
Capabilities:
Copy file

Disassembly:
push 0x34
mov eax, 0x5b63e8
call fcn.00590f31
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.005818d4
lea eax, [ebp - 0x28]
push esi
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.005818d4
add esp, 0x10
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x2c], 8
push ebx
lea eax, [ebp - 0x40]
cmovae eax, dword [ebp - 0x40]
push ecx
push eax
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, eax
test edi, edi
je 0x580715
push esi
call fcn.00580c8e
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.00408290
push ebx
push 1
lea ecx, [ebp - 0x40]
call fcn.00408290
test edi, edi
setne al
call fcn.00590eef
ret

Function at 0x580736
Capabilities:
Create directory

Disassembly:
push 0x1c
mov eax, 0x5b6415
call fcn.00590f31
mov esi, dword [ebp + 8]
push 4
pop edi
lea eax, [ebp - 0x28]
push esi
push eax
call fcn.005818d4
xor ebx, ebx
push esi
mov dword [ebp - 4], ebx
call fcn.00580aeb
add esp, 0xc
test al, al
jne 0x58077e
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ebx
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
neg eax
sbb eax, eax
and edi, eax
push ebx
push 1
lea ecx, [ebp - 0x28]
call fcn.00408290
mov eax, edi
call fcn.00590eef
ret
Function at 0x580791
Capabilities:
Get common file path
Get startup folder

Disassembly:
push 0x240
mov eax, 0x5b6445
call fcn.00590f31
mov esi, dword [ebp + 8]
xor ecx, ecx
xor eax, eax
mov bl, cl
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], ecx
mov word [ebp - 0x230], ax
lea eax, [ebp - 0x24c]
push eax
push ecx
push ecx
push 0x2b
push ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x24c], ecx
call dword [sym.imp.SHELL32.dll_SHGetFolderLocation]
test eax, eax
lea eax, [ebp - 0x218]
push eax
js 0x580834
push dword [ebp - 0x24c]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x580826
cmp word [ebp - 0x218], 0
jne 0x580804
xor eax, eax
jmp 0x580811
lea eax, [ebp - 0x218]
push eax
call fcn.00590f9d
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00408410
mov bl, 1
push dword [ebp - 0x24c]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x580876
push 0
push 0
push 0x2b
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
js 0x580876
cmp word [ebp - 0x218], 0
jne 0x580854
xor eax, eax
jmp 0x580861
lea eax, [ebp - 0x218]
push eax
call fcn.00590f9d
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x230]
call fcn.00408410
mov bl, 1
mov ecx, dword [ebp - 0x220]
test ecx, ecx
je 0x5808ea
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
cmp word [eax + ecx*2 - 2], 0x5c
jne 0x5808ad
lea eax, [ecx - 1]
push 0
push eax
lea ecx, [ebp - 0x230]
call fcn.0057cb80
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x248]
push eax
call fcn.00581989
pop ecx
pop ecx
push eax
mov ecx, esi
call fcn.00500210
lea ecx, [ebp - 0x248]
call fcn.00407f30
mov edi, 0x5d4c24
push edi
call fcn.00590e50
pop ecx
push eax
push edi
mov ecx, esi
call fcn.00414c60
push 0
push 1
lea ecx, [ebp - 0x230]
call fcn.00408290
mov al, bl
call fcn.00590eef
ret

Function at 0x580901
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x629688]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.005818d4
cmp dword [ebp - 8], 8
pop ecx
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
pop ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x580940
test al, 0x10
jbe 0x580940
mov bl, 1
jmp 0x580942
xor bl, bl
push 0
push 1
lea ecx, [ebp - 0x1c]
call fcn.00408290
mov ecx, dword [ebp - 4]
mov al, bl
xor ecx, ebp
pop ebx
call fcn.00586d1b
leave
ret

Function at 0x580aeb
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x629688]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.005818d4
cmp dword [ebp - 8], 8
pop ecx
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
pop ecx
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea ebx, [eax - 1]
neg ebx
push 0
sbb bl, bl
push 1
lea ecx, [ebp - 0x1c]
inc bl
call fcn.00408290
mov ecx, dword [ebp - 4]
mov al, bl
xor ecx, ebp
pop ebx
call fcn.00586d1b
leave
ret
Function at 0x580c8e
Capabilities:
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x629688]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.005818d4
cmp dword [eax + 0x14], 8
pop ecx
pop ecx
jb 0x580cb5
mov eax, dword [eax]
push esi
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0
neg eax
push 1
lea ecx, [ebp - 0x1c]
sbb esi, esi
call fcn.00408290
mov ecx, dword [ebp - 4]
lea eax, [esi + 1]
xor ecx, ebp
pop esi
call fcn.00586d1b
leave
ret

Function at 0x58126e
Capabilities:
Reference sql statements

Disassembly:
push 0x28
mov eax, 0x5b6580
call fcn.00590f31
mov edi, ecx
xor ebx, ebx
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], ebx
mov byte [ebp - 0x28], bl
lea eax, [ebp - 0x28]
push eax
lea eax, [edi + 0x30]
push eax
lea esi, [edi + 0x18]
push esi
mov dword [ebp - 4], ebx
call fcn.005809f5
add esp, 0xc
test al, al
jne 0x5812ae
push 0xa
pop esi
jmp 0x5813f7
lea eax, [ebp - 0x28]
push eax
call fcn.0058095d
pop ecx
test al, al
jne 0x5812e3
lea eax, [ebp - 0x28]
push eax
call fcn.00580aeb
pop ecx
test al, al
je 0x5812d2
xor esi, esi
inc esi
jmp 0x5813f7
push esi
call fcn.005810de
mov esi, eax
pop ecx
test esi, esi
jne 0x5813f7
cmp dword [ebp - 0x14], 0x10
push ebx
push dword [ebp + 8]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
lea esi, [edi + 4]
push esi
push eax
call fcn.004bd180
add esp, 0x10
test eax, eax
je 0x581313
push eax
mov dword [esi], ebx
call fcn.00581155
pop ecx
mov esi, eax
jmp 0x5813f7
push 0x7d0
push dword [esi]
call fcn.004bb6e0
cmp byte [edi + 0x4c], 0
pop ecx
pop ecx
mov dword [edi], ebx
mov esi, ebx
je 0x5813f7
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], ebx
sub eax, ebx
je 0x58135a
dec eax
je 0x581351
dec eax
jne 0x58135a
xor ebx, ebx
inc ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x34], 3
jmp 0x581361
mov dword [ebp - 0x34], 1
jmp 0x581361
mov dword [ebp - 0x34], 2
push str.SELECT_value_FROM_pcd_meta_WHERE_key__schema_version
lea eax, [ebp - 0x30]
push eax
push edi
call fcn.005817ae
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x5813a9
push dword [ebp - 0x30]
call fcn.00587dad
mov ebx, eax
lea eax, [ebp - 0x30]
mov dword [esp], str.SELECT_value_FROM_pcd_meta_WHERE_key__schema_compatibility_version
push eax
push edi
call fcn.005817ae
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x5813a9
push dword [ebp - 0x30]
call fcn.00587dad
pop ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x34]
cmp eax, dword [ebp - 0x2c]
jge 0x5813b6
push 0xd
pop esi
jmp 0x5813f0
lea ecx, [ebx + 1]
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, eax
jg 0x5813ec
mov ebx, dword [ebp - 0x34]
push ecx
mov ecx, edi
call fcn.00581409
mov esi, eax
test esi, esi
jne 0x5813e1
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, ebx
jle 0x5813c6
jmp 0x5813f7
mov eax, dword [ebp - 0x30]
xor ecx, ecx
cmp eax, dword [ebp - 0x2c]
cmove esi, ecx
test esi, esi
je 0x5813f7
mov ecx, edi
call fcn.00581240
lea ecx, [ebp - 0x28]
call fcn.00407f30
mov eax, esi
call fcn.00590eef
ret 4