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

Disassembly:
push ebx
push edi
lea edi, [esi + 0x430]
push edi
call fcn.00407a90
push edi
xor ebx, ebx
push ebx
push str.UseRegistry
push str.admin
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
dec eax
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x42c], eax
mov eax, esi
mov dword [esi + 0x100], ebx
mov dword [esi + 0x104], ebx
mov dword [esi + 0x108], ebx
mov dword [esi + 0x10c], ebx
mov dword [esi + 0x11c], ebx
mov dword [esi + 0x120], ebx
mov dword [esi + 0x124], ebx
call fcn.00452080
mov dword [esi + 0x110], eax
mov eax, esi
call fcn.004521c0
mov dword [esi + 0x114], eax
mov eax, esi
call fcn.00452300
mov dword [esi + 0x118], eax
mov eax, dword [esi + 0x11c]
mov ecx, esi
call fcn.00452380
mov dword [esi + 0x11c], eax
mov eax, dword [esi + 0x120]
mov ecx, esi
call fcn.00452490
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x124]
mov ecx, esi
call fcn.004525a0
mov ecx, dword [esi + 0x110]
mov dword [esi + 0x124], eax
cmp ecx, ebx
je 0x452793
lea edx, [esi + 0x128]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
cmp al, bl
jne 0x452778
mov eax, dword [esi + 0x110]
push eax
call fcn.0047d0a1
add esp, 4
jmp 0x452799
mov byte [esi + 0x128], bl
mov ecx, dword [esi + 0x114]
cmp ecx, ebx
je 0x4527cb
lea edx, [esi + 0x228]
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
cmp al, bl
jne 0x4527b0
mov ecx, dword [esi + 0x114]
push ecx
call fcn.0047d0a1
add esp, 4
jmp 0x4527d1
mov byte [esi + 0x228], bl
mov ecx, dword [esi + 0x118]
cmp ecx, ebx
je 0x4527ff
lea edx, [esi + 0x328]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
cmp al, bl
jne 0x4527e1
mov edx, dword [esi + 0x118]
push edx
call fcn.0047d0a1
add esp, 4
pop edi
mov eax, esi
pop ebx
ret
pop edi
mov byte [esi + 0x328], bl
mov eax, esi
pop ebx
ret

Function at 0x453200
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x198
mov eax, dword [0x4ba700]
xor eax, esp
mov dword [esp + 0x194], eax
lea eax, [esp]
push eax
push 2
call dword [sym.imp.WSOCK32.dll_WSAStartup]
test eax, eax
mov eax, esi
je 0x453244
mov dword [esi], 0
mov ecx, dword [esp + 0x194]
xor ecx, esp
call fcn.0047c3ff
mov esp, ebp
pop ebp
ret
mov cx, word [esp]
mov word [0x4f379c], cx
mov ecx, dword [esp + 0x194]
xor ecx, esp
mov dword [esi], 0xffffffff
call fcn.0047c3ff
mov esp, ebp
pop ebp
ret

Function at 0x4533c0
Capabilities:
Create tcp socket
Create udp socket
Set socket configuration

Disassembly:
push ecx
push esi
mov esi, eax
cmp dword [esi + 4], 0
push edi
mov dword [esp + 8], 1
jl 0x4533d8
call fcn.00453430
push 0
push 1
push 2
call dword [sym.imp.WSOCK32.dll_socket]
mov dword [esi + 4], eax
test eax, eax
jge 0x4533f1
xor eax, eax
pop edi
pop esi
pop ecx
ret
mov edi, dword [sym.imp.WSOCK32.dll_setsockopt]
push 4
lea ecx, [esp + 0xc]
push ecx
push 4
push 0xffff
push eax
call edi
test eax, eax
jne 0x4533eb
mov eax, dword [esi + 4]
push 4
lea edx, [esp + 0xc]
push edx
push 1
push 6
push eax
call edi
neg eax
sbb eax, eax
neg eax
pop edi
dec eax
pop esi
pop ecx
ret
Function at 0x453520
Capabilities:
Connect socket
Resolve dns
Set socket configuration

Disassembly:
sub esp, 0x18
mov eax, dword [0x4ba700]
xor eax, esp
mov dword [esp + 0x14], eax
xor eax, eax
cmp dword [edi + 4], eax
jl 0x4535b4
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov eax, 2
push esi
mov word [esp + 8], ax
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [esp + 8], eax
cmp eax, 0xffffffff
jne 0x45358c
push esi
call sub.WSOCK32.dll_gethostbyname
test eax, eax
je 0x453571
mov eax, dword [eax + 0xc]
cmp dword [eax], 0
jne 0x453584
xor eax, eax
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0047c3ff
add esp, 0x18
ret 4
mov ecx, dword [eax]
mov edx, dword [ecx]
mov dword [esp + 8], edx
mov eax, dword [esp + 0x1c]
push eax
call dword [sym.imp.WSOCK32.dll_htons]
mov edx, dword [edi + 4]
push 0x10
lea ecx, [esp + 8]
push ecx
push edx
mov word [esp + 0x12], ax
call dword [sym.imp.WSOCK32.dll_connect]
neg eax
sbb eax, eax
neg eax
dec eax
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0047c3ff
add esp, 0x18
ret 4

Function at 0x4535d0
Capabilities:
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x49999b
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4ba700]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 4]
mov dword [esp + 0x18], 1
test eax, eax
jge 0x45361c
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
push 0x1001
push 0xffff
push eax
mov dword [esp + 0x24], 4
call dword [sym.imp.WSOCK32.dll_getsockopt]
mov eax, dword [esp + 0x10]
mov edx, dword [esi + 4]
mov ebx, dword [sym.imp.WSOCK32.dll_setsockopt]
push eax
lea ecx, [esp + 0x18]
push ecx
push 0x1001
push 0xffff
push edx
mov dword [esp + 0x28], 0x7d00
call ebx
mov eax, dword [esi + 4]
push 0
push 0
push eax
call dword [sym.imp.WSOCK32.dll_accept]
mov esi, eax
test esi, esi
jl 0x453607
push 0x2398
call fcn.0047c463
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], 0
test eax, eax
je 0x4536a9
push eax
call fcn.00453270
mov edi, eax
test edi, edi
je 0x4536ab
mov dword [edi + 4], esi
jmp 0x4536bb
xor edi, edi
push 2
push esi
call dword [sym.imp.WSOCK32.dll_shutdown]
push esi
call dword [sym.imp.WSOCK32.dll_closesocket]
mov edx, dword [edi + 4]
push 4
lea ecx, [esp + 0x1c]
push ecx
push 1
push 6
push edx
call ebx
mov eax, edi
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x1c
ret
Function at 0x453750
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
sub esp, 0x18
mov eax, dword [0x4ba700]
xor eax, esp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
lea ecx, [esp]
push ecx
lea edx, [esp + 8]
push edx
push eax
mov dword [esp + 0xc], 0x10
call dword [sym.imp.WSOCK32.dll_getsockname]
mov ecx, dword [esp + 8]
push ecx
call sub.WSOCK32.dll_inet_ntoa
test eax, eax
jne 0x453790
mov eax, str._unavailable_
mov ecx, dword [esp + 0x14]
xor ecx, esp
call fcn.0047c3ff
add esp, 0x18
ret 4

Function at 0x4537b0
Capabilities:
Set socket configuration

Disassembly:
cmp byte [0x4f379c], 2
jae 0x4537be
xor eax, eax
ret 4
mov edx, dword [edi + 4]
mov eax, dword [esp + 4]
push esi
mov esi, dword [sym.imp.WSOCK32.dll_setsockopt]
push 4
lea ecx, [esp + 0xc]
push ecx
push 0x1006
push 0xffff
push edx
mov dword [esp + 0x1c], eax
call esi
cmp eax, 0xffffffff
jne 0x4537ef
xor eax, eax
pop esi
ret 4
mov ecx, dword [edi + 4]
push 4
lea eax, [esp + 0xc]
push eax
push 0x1005
push 0xffff
push ecx
call esi
inc eax
neg eax
sbb eax, eax
pop esi
ret 4

Function at 0x453810
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword [esi + 0x2394]
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc]
lea ecx, [eax + ebx]
cmp ecx, dword [0x4bb5d0]
push edi
mov edi, ebp
jle 0x4538a0
mov edi, dword [0x4bb5d0]
mov edx, edi
sub edx, eax
push edx
lea eax, [eax + esi + 0x6c]
push ebp
push eax
call fcn.00485490
mov edx, dword [esi + 4]
add esp, 0xc
push 0
push edi
lea ecx, [esi + 0x6c]
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_send]
mov ecx, dword [0x4bb5d0]
mov eax, dword [esi + 0x2394]
mov edi, ecx
sub edi, eax
sub eax, ecx
add eax, ebx
mov ebx, eax
add edi, ebp
mov dword [esi + 0x2394], 0
cmp ebx, ecx
jbe 0x4538a0
mov edi, edi
mov eax, dword [esi + 4]
push 0
push ecx
push edi
push eax
call dword [sym.imp.WSOCK32.dll_send]
test eax, eax
je 0x4538ea
mov ecx, dword [0x4bb5d0]
sub ebx, ecx
add edi, ecx
cmp ebx, ecx
ja 0x453880
mov ecx, dword [esi + 0x2394]
push ebx
lea edx, [esi + ecx + 0x6c]
push edi
push edx
call fcn.00485490
add dword [esi + 0x2394], ebx
mov eax, dword [esi + 0x2394]
mov ecx, dword [esi + 4]
add esp, 0xc
push 0
push eax
lea eax, [esi + 0x6c]
push eax
push ecx
call dword [sym.imp.WSOCK32.dll_send]
test eax, eax
je 0x4538ea
mov eax, dword [esp + 0x14]
pop edi
pop ebp
mov dword [esi + 0x2394], 0
pop ebx
ret 8
pop edi
pop ebp
xor eax, eax
pop ebx
ret 8
Function at 0x453900
Capabilities:
Send data
Send data on socket

Disassembly:
mov eax, dword [esi + 0x2394]
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc]
lea ecx, [eax + ebx]
cmp ecx, dword [0x4bb5d0]
push edi
mov edi, ebp
jle 0x453990
mov edi, dword [0x4bb5d0]
mov edx, edi
sub edx, eax
push edx
lea eax, [eax + esi + 0x6c]
push ebp
push eax
call fcn.00485490
mov edx, dword [esi + 4]
add esp, 0xc
push 0
push edi
lea ecx, [esi + 0x6c]
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_send]
mov ecx, dword [0x4bb5d0]
mov eax, dword [esi + 0x2394]
mov edi, ecx
sub edi, eax
sub eax, ecx
add eax, ebx
mov ebx, eax
add edi, ebp
mov dword [esi + 0x2394], 0
cmp ebx, ecx
jbe 0x453990
mov edi, edi
mov eax, dword [esi + 4]
push 0
push ecx
push edi
push eax
call dword [sym.imp.WSOCK32.dll_send]
test eax, eax
je 0x4539b5
mov ecx, dword [0x4bb5d0]
sub ebx, ecx
add edi, ecx
cmp ebx, ecx
ja 0x453970
mov ecx, dword [esi + 0x2394]
push ebx
lea edx, [esi + ecx + 0x6c]
push edi
push edx
call fcn.00485490
mov eax, dword [esp + 0x20]
add esp, 0xc
add dword [esi + 0x2394], ebx
pop edi
pop ebp
pop ebx
ret 8
pop edi
pop ebp
xor eax, eax
pop ebx
ret 8
Function at 0x4635a0
Capabilities:
Hash data with crc32

Disassembly:
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x4635ab
xor eax, eax
ret
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 4]
jmp fcn.004635c0
Function at 0x467366
Capabilities:
Parse credit card information

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x14]
xor ebp, ebp
mov dword [0x524380], edi
call fcn.00482c09
push eax
push edi
call fcn.00482840
mov ebx, eax
add ebx, edi
jmp 0x4674bc
cmp esi, 0x20
je 0x4674a8
cmp esi, 0x3a
je 0x4674a8
cmp esi, 0x22
je 0x4674a8
cmp esi, 0x2a
je 0x4674a8
cmp esi, 0x2b
je 0x4674a8
cmp esi, 0x2c
je 0x4674a8
cmp esi, 0x3b
je 0x4674a8
cmp esi, 0x3c
je 0x4674a8
cmp esi, 0x3d
je 0x4674a8
cmp esi, 0x3e
je 0x4674a8
cmp esi, 0x3f
je 0x4674a8
cmp esi, 0x5b
je 0x4674a8
cmp esi, 0x5d
je 0x4674a8
cmp esi, 0x7c
je 0x4674a8
cmp esi, 0x2f
jne 0x467430
mov dword [0x524380], edi
call fcn.00482c09
push eax
push edi
call fcn.00482840
add edi, eax
mov eax, dword [0x524380]
pop ecx
pop ecx
mov byte [eax], 0x2f
xor ebp, ebp
jmp 0x4674a8
cmp esi, 0x2e
jne 0x467465
test ebp, ebp
je 0x4674a8
cmp ebp, 9
jge 0x467460
mov dword [0x524380], edi
call fcn.00482c09
push eax
push edi
call fcn.00482840
pop ecx
add edi, eax
mov eax, dword [0x524380]
pop ecx
mov byte [eax], 0x2e
push 9
jmp 0x467462
push 0xc
pop ebp
jmp 0x4674a8
cmp ebp, 0xc
jge 0x4674a8
cmp ebp, 8
je 0x4674a8
call fcn.00482c09
push eax
push ebx
call fcn.00482840
add ebp, eax
mov dword [0x524380], edi
call fcn.00482c09
push eax
push edi
call fcn.00482840
mov ecx, dword [0x524380]
add edi, eax
add esp, 0x10
and esi, 0xff
mov al, byte [esi + 0x5243a0]
mov byte [ecx], al
mov dword [0x524380], ebx
call fcn.00482c09
push eax
push ebx
call fcn.00482840
add ebx, eax
mov eax, dword [0x524380]
movzx esi, byte [eax]
pop ecx
pop ecx
test esi, esi
jne 0x46738b
mov eax, dword [esp + 0x14]
mov byte [edi], 0
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x467cb9
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push edi
mov edi, 0x4000
push edi
call fcn.0047da45
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x467cd9
push 4
pop eax
jmp 0x467d65
and dword [ebp - 4], 0
push esi
mov eax, dword [ebp + 0x10]
cmp eax, 0xffffffff
je 0x467cf2
cmp dword [ebp - 4], eax
jae 0x467d39
sub eax, dword [ebp - 4]
cmp eax, edi
jb 0x467cf4
mov eax, edi
push dword [ebp + 8]
push eax
push 1
push ebx
call fcn.004833f1
mov esi, eax
add esp, 0x10
test esi, esi
je 0x467d21
push dword [ebp + 0xc]
push esi
push 1
push ebx
call fcn.004830cf
add esp, 0x10
cmp eax, esi
jne 0x467d44
add dword [ebp - 4], esi
jmp 0x467cde
push dword [ebp + 8]
call fcn.00481076
pop ecx
test eax, eax
je 0x467d39
push ebx
call fcn.0047d643
pop ecx
push 0xb
jmp 0x467d63
push ebx
call fcn.0047d643
pop ecx
xor eax, eax
jmp 0x467d64
push ebx
call fcn.0047d643
mov dword [esp], str._fcopy:_write_error_n
call fcn.0047ebfe
add eax, 0x40
push eax
call fcn.0047edb3
pop ecx
pop ecx
push 0xa
pop eax
pop esi
pop edi
pop ebx
leave
ret
Function at 0x4694fc
Capabilities:
Write file on windows

Disassembly:
push esi
push edi
mov edi, dword [esp + 0x10]
push edi
push 0x50
call fcn.00484e0f
push edi
push 0x4b
call fcn.00484e0f
push edi
push 3
call fcn.00484e0f
push edi
push 4
call fcn.00484e0f
mov esi, dword [esp + 0x2c]
movsx eax, byte [esi + 2]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 3]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x2c]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x2d]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 6]
add esp, 0x40
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 7]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 8]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 9]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0xa]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0xb]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0xc]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0xd]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0xe]
add esp, 0x40
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0xf]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x10]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x11]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x12]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x13]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x14]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x15]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x16]
add esp, 0x40
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x17]
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x18]
push edi
push eax
call fcn.00484e0f
mov eax, dword [esi + 0x18]
shr eax, 8
movsx eax, al
push edi
push eax
call fcn.00484e0f
movsx eax, byte [esi + 0x1c]
push edi
push eax
call fcn.00484e0f
mov eax, dword [esi + 0x1c]
shr eax, 8
movsx eax, al
push edi
push eax
call fcn.00484e0f
push edi
push dword [esi + 0x18]
push 1
push dword [esi + 0x48]
call fcn.004830cf
add esp, 0x40
cmp eax, dword [esi + 0x18]
jne 0x46968c
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x469688
push edi
push eax
push 1
push dword [esi + 0x3c]
call fcn.004830cf
add esp, 0x10
cmp eax, dword [esi + 0x1c]
jne 0x46968c
xor eax, eax
jmp 0x46968f
push 0xa
pop eax
pop edi
pop esi
ret
Function at 0x4699b6
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 0x1c]
push edi
push esi
push 0x50
call fcn.00484e0f
push esi
push 0x4b
call fcn.00484e0f
push esi
push 5
call fcn.00484e0f
push esi
push 6
call fcn.00484e0f
push esi
xor edi, edi
push edi
call fcn.00484e0f
push esi
push edi
call fcn.00484e0f
push esi
push edi
call fcn.00484e0f
push esi
push edi
call fcn.00484e0f
mov ebx, dword [ebp + 8]
add esp, 0x40
movsx edi, bl
push esi
push edi
call fcn.00484e0f
shr ebx, 8
movsx ebx, bl
push esi
push ebx
call fcn.00484e0f
push esi
push edi
call fcn.00484e0f
push esi
push ebx
call fcn.00484e0f
mov ebx, dword [ebp + 0xc]
movsx eax, bl
push esi
push eax
call fcn.00484e0f
mov eax, ebx
shr eax, 8
movsx eax, al
push esi
push eax
call fcn.00484e0f
mov eax, ebx
shr eax, 0x10
movsx eax, al
push esi
push eax
call fcn.00484e0f
shr ebx, 0x18
movsx eax, bl
push esi
push eax
call fcn.00484e0f
mov ebx, dword [ebp + 0x10]
add esp, 0x40
movsx eax, bl
push esi
push eax
call fcn.00484e0f
mov eax, ebx
shr eax, 8
movsx eax, al
push esi
push eax
call fcn.00484e0f
push esi
mov eax, ebx
shr eax, 0x10
movsx eax, al
push eax
call fcn.00484e0f
shr ebx, 0x18
movsx eax, bl
push esi
push eax
call fcn.00484e0f
mov ebx, dword [ebp + 0x14]
movsx eax, bl
push esi
push eax
call fcn.00484e0f
mov eax, ebx
shr eax, 8
movsx eax, al
push esi
push eax
call fcn.00484e0f
add esp, 0x30
test ebx, ebx
je 0x469ad6
push esi
push ebx
push 1
push dword [ebp + 0x18]
call fcn.004830cf
add esp, 0x10
cmp eax, ebx
je 0x469ad6
push 0xa
pop eax
jmp 0x469ad8
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret
Function at 0x46b28d
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push esi
mov esi, dword [ebp + 8]
push 3
lea eax, [ebp - 4]
push esi
push eax
call fcn.0047ce10
movzx eax, byte [ebp - 4]
push eax
call fcn.00480056
add esp, 0x10
test eax, eax
je 0x46b2ce
cmp byte [ebp - 3], 0x3a
jne 0x46b2ce
movzx eax, byte [esi]
mov al, byte [eax + 0x5243a0]
xor ecx, ecx
mov byte [ebp - 2], 0x5c
mov byte [ebp - 1], cl
jmp 0x46b2d5
xor ecx, ecx
mov al, 0x5c
mov byte [ebp - 3], cl
mov byte [ebp - 4], al
pop esi
cmp byte [0x4bd756], al
jne 0x46b2e8
mov eax, dword [0x4bd758]
leave
ret
push ecx
push ecx
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push ecx
push ecx
push ecx
lea eax, [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x46b319
push str.zip_diagnostic:_GetVolumeInformation_failed_n
push dword [0x5244a4]
call fcn.0047edb3
pop ecx
pop ecx
xor eax, eax
leave
ret
mov al, byte [ebp - 4]
mov byte [0x4bd756], al
push 0xc
pop eax
cmp eax, dword [ebp - 8]
sbb eax, eax
inc eax
mov dword [0x4bd758], eax
leave
ret

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

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x46b356
push str.zip_diagnostic:_GetFileAttributes_failed_n
push dword [0x5244a4]
call fcn.0047edb3
pop ecx
pop ecx
push 0x20
pop eax
ret
and eax, 0x37
ret

Function at 0x46b35a
Capabilities:
Get disk information

Disassembly:
push ebp
lea ebp, [esp - 0x1a0]
sub esp, 0x220
mov eax, dword [0x4ba700]
xor eax, ebp
mov dword [ebp + 0x19c], eax
push esi
push edi
mov edi, ecx
movzx eax, byte [edi]
push eax
call fcn.00480056
pop ecx
mov esi, 0x104
test eax, eax
je 0x46b392
cmp byte [edi + 1], 0x3a
je 0x46b3a5
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x6c]
push eax
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
lea edi, [ebp - 0x6c]
push 3
lea eax, [ebp - 0x70]
push edi
push eax
mov dword [ebp - 0x74], edi
call fcn.0047ce10
add esp, 0xc
push esi
lea eax, [ebp + 0x98]
push eax
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x80]
push eax
push esi
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x70]
push eax
mov byte [ebp - 0x6d], 0
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
push 3
lea eax, [ebp + 0x98]
push 0x49da04
push eax
call fcn.0047dce2
pop ecx
push eax
call fcn.0047e22e
add esp, 0xc
pop edi
pop esi
test eax, eax
je 0x46b439
push 4
lea eax, [ebp + 0x98]
push str.VFAT
push eax
call fcn.0047e22e
add esp, 0xc
test eax, eax
je 0x46b439
push 4
lea eax, [ebp + 0x98]
push str.HPFS
push eax
call fcn.0047e22e
add esp, 0xc
test eax, eax
je 0x46b439
xor eax, eax
jmp 0x46b43c
xor eax, eax
inc eax
mov ecx, dword [ebp + 0x19c]
xor ecx, ebp
call fcn.0047c3ff
add ebp, 0x1a0
leave
ret
Function at 0x46b4e2
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [ebp + 0x10]
push esi
xor esi, esi
push esi
push esi
push esi
push 1
push 1
push 0x7bc
mov dword [eax], 0x28
call fcn.00467b05
mov ecx, dword [ebp + 0xc]
push eax
mov dword [ecx], eax
call fcn.00467ba5
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
lea eax, [ebp + 0x10]
push 0x49da08
push eax
mov dword [ecx + 4], edx
call fcn.004805d0
mov eax, dword [ebp + 8]
add esp, 0x24
push esi
push esi
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp - 8]
push ecx
mov byte [ebp + 0x10], al
push esi
neg eax
push 0xd
sbb eax, eax
lea ecx, [ebp + 0x10]
mov esi, 0x4bd748
push esi
and eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
neg eax
sbb eax, eax
and eax, esi
pop esi
leave
ret
Function at 0x46b61e
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push ebx
push esi
call fcn.0047e6af
pop ecx
pop ecx
test eax, eax
jne 0x46b744
mov ecx, esi
call fcn.0046b35a
push 0
push 0x2000000
push 3
push 0
push 1
push 0x80
push esi
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x46b740
push edi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileTime]
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x46b73f
cmp dword [ebp - 4], 0
jne 0x46b6ea
lea edi, [ebx + 0x20]
mov esi, edi
lea eax, [ebp - 0x1c]
call fcn.0046b451
cmp dword [ebp - 0xc], 0
jne 0x46b6bc
cmp dword [ebp - 8], 0
jne 0x46b6bc
mov eax, dword [edi]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 4]
mov dword [ebx + 0x1c], eax
jmp 0x46b6c7
lea esi, [ebx + 0x18]
lea eax, [ebp - 0xc]
call fcn.0046b451
cmp dword [ebp - 0x14], 0
jne 0x46b6dd
cmp dword [ebp - 0x10], 0
jne 0x46b6dd
mov eax, dword [edi]
mov dword [ebx + 0x28], eax
mov eax, dword [edi + 4]
jmp 0x46b72f
lea esi, [ebx + 0x28]
lea eax, [ebp - 0x14]
call fcn.0046b451
jmp 0x46b73f
lea esi, [ebx + 0x20]
lea edi, [ebp - 0x1c]
call fcn.00471318
cmp dword [ebp - 0xc], 0
jne 0x46b70f
cmp dword [ebp - 8], 0
jne 0x46b70f
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x1c], eax
jmp 0x46b71a
lea esi, [ebx + 0x18]
lea edi, [ebp - 0xc]
call fcn.00471318
cmp dword [ebp - 0x14], 0
jne 0x46b734
cmp dword [ebp - 0x10], 0
jne 0x46b734
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x2c], eax
jmp 0x46b73f
lea esi, [ebx + 0x28]
lea edi, [ebp - 0x14]
call fcn.00471318
pop edi
xor eax, eax
jmp 0x46b7a2
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 4], eax
cmp eax, 0xffffffff
je 0x46b79f
test al, 0x10
je 0x46b79f
push 0x30
push 0
push ebx
call fcn.004858b0
push 0x210000
call fcn.00467ba5
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x28], eax
mov eax, edx
mov dword [ebx + 0x2c], eax
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x18], eax
mov eax, edx
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 4]
shl eax, 7
not eax
and eax, 0x80
add esp, 0x10
or eax, 0x4100
mov dword [ebx + 0x24], edx
mov word [ebx + 6], ax
jmp 0x46b740
or eax, 0xffffffff
pop esi
pop ebx
leave
ret