joyce8/EMBER2024-capa huggingface dataset:
Function at 0x70db3524
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
push 0x40
push dword [ebp + 0xc]
mov ebx, ecx
mov esi, 0x80070057
call dword [sym.imp.SHLWAPI.dll_StrChrW]
xor edi, edi
cmp eax, edi
je 0x70db36b3
push eax
call dword [sym.imp.SHLWAPI.dll_Ordinal_40]
lea ecx, [ebp - 4]
push ecx
push dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 0x24]
mov esi, eax
cmp esi, edi
jl 0x70db35f3
mov eax, dword [ebp - 4]
lea edx, [ebp - 0xc]
push edx
mov dword [ebp - 0xc], edi
mov ecx, dword [eax]
push eax
mov word [ebp - 0x20], 3
call dword [ecx + 0x1c]
mov esi, 0x80004005
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0xc]
jge 0x70db35e0
mov eax, dword [ebp - 4]
and dword [ebp - 8], 0
mov ecx, dword [eax]
lea edx, [ebp - 8]
push edx
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x20]
mov esi, eax
test esi, esi
jl 0x70db35d0
push 0x70db17a0
push dword [ebp + 0x14]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 8]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.70db347d
mov esi, eax
push dword [ebp - 8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc dword [ebp - 0x18]
test esi, esi
jl 0x70db3588
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor edi, edi
cmp esi, edi
jge 0x70db36b3
test byte [ebp + 0x14], 1
je 0x70db36b3
push edi
push edi
push 0x70db1780
push 0x70db1530
call dword [sym.imp.SHLWAPI.dll_SHRegGetBoolUSValueW]
test eax, eax
jne 0x70db3626
push 0x2e
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_StrChrW]
test eax, eax
je 0x70db36b3
push dword [ebp + 0x14]
mov eax, dword [ebx]
lea ecx, [ebp - 4]
push ecx
push dword [ebp + 0xc]
push ebx
call dword [eax + 0x28]
mov esi, eax
cmp esi, edi
jl 0x70db36b3
mov eax, dword [ebp - 4]
lea edx, [ebp + 8]
push edx
mov dword [ebp + 8], edi
mov ecx, dword [eax]
push eax
mov word [ebp - 0x20], 3
call dword [ecx + 0x1c]
mov esi, 0x80004005
mov dword [ebp - 0x18], edi
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp + 8]
jge 0x70db36aa
mov eax, dword [ebp - 4]
and dword [ebp + 0xc], 0
mov ecx, dword [eax]
lea edx, [ebp + 0xc]
push edx
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x20]
mov esi, eax
test esi, esi
jl 0x70db369a
push dword [ebp + 0x14]
mov ecx, ebx
push dword [ebp + 0x10]
push dword [ebp - 0x10]
push dword [ebp + 0xc]
call fcn.70db2bee
mov esi, eax
push dword [ebp + 0xc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc dword [ebp - 0x18]
test esi, esi
jl 0x70db365a
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 0x10
Function at 0x70db380e
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x18]
xor ecx, ecx
cmp dword [ebp + 0xc], ecx
push ebx
push edi
mov ebx, 0x80070057
mov dword [eax], ecx
je 0x70db38cc
push esi
mov esi, dword [ebp + 8]
cmp dword [esi + 0x10], ecx
je 0x70db38b8
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ebx, [esi + 0x1c]
push dword [ebx]
call edi
push ebx
push dword [ebp + 0xc]
call fcn.70db55cc
mov ebx, eax
test ebx, ebx
jl 0x70db38cb
lea ebx, [esi + 0x20]
push dword [ebx]
call edi
push ebx
push dword [ebp + 0x14]
call fcn.70db55cc
mov ebx, eax
xor edi, edi
cmp ebx, edi
jl 0x70db38cb
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x18], eax
mov eax, dword [esi]
push esi
call dword [eax + 4]
lea eax, [ebp + 0x14]
push eax
push edi
push esi
push 0x70db3802
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, edi
mov dword [ebp + 0xc], eax
je 0x70db38b0
mov eax, dword [esi + 0x24]
cmp eax, edi
je 0x70db38a2
push 0x2710
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp + 0xc]
mov ebx, dword [esi + 0x28]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x70db38cb
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x70db38cb
push eax
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.70db36bc
mov ebx, eax
pop esi
pop edi
mov eax, ebx
pop ebx
pop ebp
ret 0x14

Function at 0x70db5f40
Capabilities:
Hash data with md5

Disassembly:
mov eax, dword [esp + 4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0x67452301
mov dword [eax + 0xc], 0xefcdab89
mov dword [eax + 0x10], 0x98badcfe
mov dword [eax + 0x14], 0x10325476
ret 4

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x42e680
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x2f0
mov eax, dword [0x4c8698]
xor eax, esp
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x2fc]
push ebx
mov ebx, dword [esp + 0x304]
push ebp
mov ebp, dword [esp + 0x30c]
push esi
mov esi, dword [esp + 0x304]
push edi
mov edi, dword [esp + 0x304]
push 0x64
lea ecx, [esp + 0x30]
push 0
push ecx
mov dword [esp + 0x30], eax
call fcn.00470770
mov edx, ebx
shr edx, 8
movzx eax, dl
movzx ecx, bl
shl ecx, 8
or eax, ecx
shl eax, 8
mov edx, ebx
shr edx, 0x10
movzx ecx, dl
or eax, ecx
shl eax, 8
shr ebx, 0x18
or eax, ebx
push eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov edx, eax
shr edx, 0x10
mov ch, dl
mov edx, eax
shr edx, 0x18
mov cl, dl
push ecx
mov ecx, eax
shr ecx, 8
movzx eax, al
movzx edx, cl
shl eax, 8
or edx, eax
push edx
mov ecx, esi
movzx edx, si
mov esi, dword [sym.imp.SHLWAPI.dll_wnsprintfW]
shr ecx, 0x10
push ecx
push edx
push edi
push str._X__X__X__X__X_X
lea eax, [esp + 0x54]
push 0x63
push eax
call esi
lea ecx, [esp + 0x5c]
push ecx
push str.CLSID_sLocalServer32
lea edx, [esp + 0x12c]
push 0x103
push edx
call esi
add esp, 0x40
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xf8]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x42e7a9
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edx
push ebp
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push ecx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x42e7ad
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor al, al
jmp 0x42e7ba
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
mov ecx, dword [esp + 0x2fc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00470220
add esp, 0x2f0
ret
Function at 0x441540
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x11c
mov eax, dword [0x4c8698]
xor eax, esp
mov dword [esp + 0x118], eax
push ebp
push esi
mov esi, dword [esp + 0x128]
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [esp + 0x1c]
push eax
push 0x20019
push 0
push str.SystemCurrentControlSetControlNetwork4D36E972_E325_11CE_BFC1_08002BE10318
push reloc.OLEAUT32.dll_SysReAllocString
mov ebp, 3
mov dword [esp + 0x2c], 0x104
mov dword [esp + 0x28], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
call edi
test eax, eax
jne 0x4416d4
push esi
push str._sConnection
lea ecx, [esp + 0x28]
push 0x103
push ecx
call fcn.00441520
mov ecx, dword [esp + 0x2c]
add esp, 0x10
lea edx, [esp + 0x10]
push edx
push 0x20019
push 0
lea eax, [esp + 0x2c]
push eax
push ecx
call edi
test eax, eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x4416cd
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, 4
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x1c]
push ecx
push 0
push str.MediaSubType
push edx
call esi
test eax, eax
jne 0x4416c6
push 0x104
push eax
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x24], 0x103
call fcn.00470770
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x1c]
push eax
push 0
push str.PnpInstanceID
push ecx
call esi
test eax, eax
jne 0x4416c6
mov esi, 1
cmp dword [esp + 0xc], esi
jne 0x4416b6
push ebp
lea edx, [esp + 0x24]
push 0x4b14e8
push edx
call fcn.00473920
add esp, 0xc
test eax, eax
jne 0x441691
xor ebp, ebp
jmp 0x4416c6
cmp dword [esp + 0xc], esi
jne 0x4416b6
push 3
lea eax, [esp + 0x24]
push 0x4b14e8
push eax
call fcn.00473920
add esp, 0xc
test eax, eax
je 0x4416b6
mov ebp, 2
jmp 0x4416c6
xor ecx, ecx
cmp dword [esp + 0xc], 2
setne cl
lea ecx, [ecx + ecx + 1]
mov ebp, ecx
mov edx, dword [esp + 0x10]
push edx
call edi
mov eax, dword [esp + 0x1c]
push eax
call edi
mov ecx, dword [esp + 0x124]
pop edi
pop esi
mov eax, ebp
pop ebp
xor ecx, esp
call fcn.00470220
add esp, 0x11c
ret
Function at 0x449940
Capabilities:
Hash data with md5

Disassembly:
mov eax, dword [esp + 4]
xor ecx, ecx
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
ret

Function at 0x44a180
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x2f0
mov eax, dword [0x4c8698]
xor eax, esp
mov dword [esp + 0x2ec], eax
mov eax, dword [esp + 0x2fc]
push ebx
mov ebx, dword [esp + 0x304]
push ebp
mov ebp, dword [esp + 0x30c]
push esi
mov esi, dword [esp + 0x304]
push edi
mov edi, dword [esp + 0x304]
push 0x64
lea ecx, [esp + 0x30]
push 0
push ecx
mov dword [esp + 0x30], eax
call fcn.00470770
mov edx, ebx
shr edx, 8
movzx eax, dl
movzx ecx, bl
shl ecx, 8
or eax, ecx
shl eax, 8
mov edx, ebx
shr edx, 0x10
movzx ecx, dl
or eax, ecx
shl eax, 8
shr ebx, 0x18
or eax, ebx
push eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov edx, eax
shr edx, 0x10
mov ch, dl
mov edx, eax
shr edx, 0x18
mov cl, dl
push ecx
mov ecx, eax
shr ecx, 8
movzx eax, al
movzx edx, cl
shl eax, 8
or edx, eax
push edx
mov ecx, esi
movzx edx, si
mov esi, dword [sym.imp.SHLWAPI.dll_wnsprintfW]
shr ecx, 0x10
push ecx
push edx
push edi
push str._X__X__X__X__X_X
lea eax, [esp + 0x54]
push 0x63
push eax
call esi
lea ecx, [esp + 0x5c]
push ecx
push str.CLSID_sLocalServer32
lea edx, [esp + 0x12c]
push 0x103
push edx
call esi
add esp, 0x40
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0xf8]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x44a2a9
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x18]
push edx
push ebp
lea eax, [esp + 0x1c]
push eax
push 0
push 0
push ecx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0x104
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x44a2ad
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor al, al
jmp 0x44a2ba
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, 1
mov ecx, dword [esp + 0x2fc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00470220
add esp, 0x2f0
ret 0x14
Function at 0x48d092
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
xor ebx, ebx
cmp edi, ebx
je 0x48d16f
cmp byte [edi], bl
je 0x48d16f
mov esi, dword [ebp + 0xc]
cmp esi, ebx
je 0x48d16f
push ebx
push ebx
push 3
push ebx
push 3
push SysReAllocString
push edi
mov byte [esi], bl
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x10], eax
je 0x48d16f
push ebx
push edi
mov dword [ebp - 8], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov edi, eax
cmp edi, ebx
mov byte [esi], bl
je 0x48d161
push edi
call fcn.00470810
cmp eax, ebx
pop ecx
mov dword [ebp - 4], eax
je 0x48d161
push eax
push edi
push ebx
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x48d158
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 8]
push eax
push 0x4b4fe8
push dword [ebp - 4]
mov dword [ebp + 8], ebx
mov dword [ebp - 0xc], ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x48d158
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0xc]
push ecx
movzx ecx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
movzx eax, word [eax + 0xa]
push ecx
push eax
push str._d._d._d._d
push 0x77
push esi
call fcn.00473ed2
add esp, 0x1c
mov dword [ebp - 8], 1
push dword [ebp - 4]
call fcn.0047050a
pop ecx
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 8]
jmp 0x48d171
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x48d176
Capabilities:
Get file version info
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x17c
mov eax, dword [0x4c8698]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
xor ebx, ebx
cmp edi, ebx
mov esi, edx
je 0x48d31a
cmp byte [edi], bl
je 0x48d31a
cmp esi, ebx
je 0x48d31a
push ebx
push ebx
push 3
push ebx
push 3
push SysReAllocString
push edi
mov byte [esi], bl
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [ebp - 0x4c], eax
je 0x48d31a
push ebx
push edi
mov dword [ebp - 0x58], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeA
cmp eax, ebx
mov dword [ebp - 0x48], eax
mov byte [esi], bl
je 0x48d257
push eax
call fcn.00470810
cmp eax, ebx
pop ecx
mov dword [ebp - 0x5c], eax
je 0x48d257
push eax
push dword [ebp - 0x48]
push ebx
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x48d24e
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x48]
push eax
push 0x4b4fe8
push dword [ebp - 0x5c]
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x54], ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x48d24e
push esi
call fcn.00476230
mov ecx, dword [ebp - 0x48]
movzx edx, word [ecx + 0xc]
push edx
movzx edx, word [ecx + 0xe]
push edx
movzx edx, word [ecx + 8]
movzx ecx, word [ecx + 0xa]
push edx
push ecx
dec eax
push str._d._d._d._d
push eax
push esi
call fcn.00473ed2
add esp, 0x20
mov dword [ebp - 0x58], 1
push dword [ebp - 0x5c]
call fcn.0047050a
pop ecx
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
lea eax, [ebp - 0x50]
push eax
push 0x40
lea eax, [ebp - 0x44]
push eax
push dword [ebp - 0x4c]
call edi
test eax, eax
je 0x48d30c
cmp dword [ebp - 0x50], 0x40
jne 0x48d30c
push ebx
push ebx
push dword [ebp - 8]
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [ebp - 0x50]
push eax
push 0xf8
lea eax, [ebp - 0x17c]
push eax
push dword [ebp - 0x4c]
call edi
test eax, eax
je 0x48d30c
cmp dword [ebp - 0x50], 0xf8
jne 0x48d30c
push esi
call fcn.00476230
add esi, eax
mov eax, dword [ebp - 0x174]
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
push eax
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x5c], ebx
call fcn.004a1606
push 9
pop ecx
mov esi, eax
lea edi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
push dword [ebp - 0x84]
mov eax, dword [ebp - 0x74]
push dword [ebp - 0x80]
inc eax
push dword [ebp - 0x7c]
push dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x70]
add eax, 0x76c
push eax
push str.__04d__02d__02d__02d:_02d:_02d
push 0x77
push dword [ebp - 0x54]
call fcn.00473ed2
add esp, 0x2c
push dword [ebp - 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x58]
jmp 0x48d31c
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00470220
leave
ret
Function at 0x403fb0
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x413bc0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.00402ca0
call fcn.004023b0
push str.345rdxcvgt567yhjm
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x41a168], eax
mov dword [0x41a17c], ebx
call fcn.004020b0
call fcn.00403710
test eax, eax
je 0x40400c
push ebx
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.00403630
mov eax, str.http:__www.hellobetta.com_mall_flash_POPUP_1.php
mov dword [0x419f38], eax
cmp byte [eax], bl
je 0x40403f
call fcn.00402090
mov dword [0x419f38], eax
mov ecx, eax
lea esi, [ecx + 1]
mov edi, edi
mov dl, byte [ecx]
inc ecx
cmp dl, bl
jne 0x404030
sub ecx, esi
lea eax, [eax + ecx + 1]
jmp 0x404016
call fcn.00403a20
cmp eax, 2
jne 0x404083
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0040698a
add esp, 4
call fcn.0040699c
cdq
mov ecx, 0x12c
idiv ecx
add edx, 0x258
imul edx, edx, 0x3e8
mov dword [0x419450], edx
mov dword [0x41a138], ebx
mov dword [0x41a13c], ebx
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x403450
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x10
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x10], eax
push 0
mov edi, dword [ebp + 0xc]
push edi
mov esi, dword [ebx + 4]
push esi
call fcn.00405360
add esp, 0x10
test eax, eax
jne 0x4034d4
mov eax, dword [ebx + 4]
push eax
lea eax, [ebx + 0x34]
push 0x3c
push 1
push eax
call sub.msvcrt.dll_fread
add esp, 0x10
cmp eax, 0x3c
jne 0x4034b8
cld
lea esi, [ebx + 0x6e]
mov edi, 0x40bfca
mov ecx, 2
repe cmpsb byte [esi], byte es:[edi]
jne 0x4034f0
mov eax, dword [ebp - 0x10]
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.00403210
push eax
push eax
mov eax, dword [ebx]
push eax
push str._s:_failed_to_read_archive_header_n
call fcn.004025d0
add esp, 0x10
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
push ecx
push ecx
mov edx, dword [ebx]
push edx
push str._s:_failed_to_seek_to_next_file_name_n
call fcn.004025d0
add esp, 0x10
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push eax
push eax
mov eax, dword [ebx]
push eax
push str._s:_did_not_find_a_valid_archive_header_n
call fcn.004025d0
add esp, 0x10
jmp 0x4034ca
Function at 0x405140
Capabilities:
Get file size
Write file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov eax, dword [sym.imp.msvcrt.dll__osver]
cmp word [eax], 0
jns 0x40515b
mov eax, dword [0x40d360]
test eax, eax
jne 0x405180
mov ebx, dword [esp + 0x4c]
push ebx
mov ecx, dword [esp + 0x4c]
push ecx
mov edx, dword [esp + 0x4c]
push edx
mov eax, dword [esp + 0x4c]
push eax
call sub.msvcrt.dll_fwrite
add esp, 0x10
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
sub esp, 0xc
mov dword [0x40d360], 0
mov eax, dword [esp + 0x58]
push eax
call sub.msvcrt.dll_fflush
pop ebp
mov eax, dword [esp + 0x58]
mov edi, dword [eax + 0x10]
push edi
call sub.msvcrt.dll__get_osfhandle
pop ebx
pop esi
lea edx, [esp + 0x24]
push edx
push eax
call sub.KERNEL32.dll_GetFileSize
mov dword [esp + 0x20], eax
pop edx
inc eax
pop ecx
jne 0x4051d8
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x4052e5
mov ebx, dword [esp + 0x10]
sub esp, 0xc
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x10]
push eax
call sub.msvcrt.dll__get_osfhandle
push 1
lea edx, [esp + 0x28]
push edx
push ebx
push eax
call sub.KERNEL32.dll_SetFilePointer
mov dword [esp + 0x20], eax
add esp, 0x10
inc eax
jne 0x405211
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x4052e5
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
cmp edx, dword [esp + 0x1c]
jb 0x40515b
jbe 0x4052f0
sub esp, 0xc
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 0x10]
push eax
call sub.msvcrt.dll__get_osfhandle
push 2
push 0
push 0
push eax
call sub.KERNEL32.dll_SetFilePointer
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x24]
sub edi, dword [esp + 0x28]
sbb ebp, dword [esp + 0x2c]
add esp, 0x10
cmp ebp, 0
jl 0x4052c5
jle 0x4052c0
nop
mov ebx, edi
cmp ebp, 0
jl 0x405272
jle 0x4052ff
mov ebx, 0x200
mov dword [esp + 4], ebx
sub esp, 0xc
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x10]
push eax
call sub.msvcrt.dll__get_osfhandle
lea edx, [esp + 0x34]
mov dword [esp], 0
push edx
push ebx
push 0x40d160
push eax
call sub.KERNEL32.dll_WriteFile
add esp, 0xc
test eax, eax
je 0x405310
mov eax, dword [esp + 0x24]
cmp dword [esp + 4], eax
ja 0x405337
xor edx, edx
sub edi, eax
sbb ebp, edx
cmp ebp, 0
jg 0x405260
jl 0x4052c5
cmp edi, 0
ja 0x405260
sub esp, 0xc
mov eax, dword [esp + 0x58]
mov esi, dword [eax + 0x10]
push esi
call sub.msvcrt.dll__get_osfhandle
mov dword [esp], eax
call sub.KERNEL32.dll_FlushFileBuffers
add esp, 0xc
jmp 0x40515b
add esp, 0x2c
or eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, dword [esp + 0x18]
jbe 0x40515b
jmp 0x405229
cmp edi, 0x200
jbe 0x405272
jmp 0x40526d
sub esp, 0xc
mov eax, dword [esp + 0x58]
mov ebp, dword [eax + 0x10]
push ebp
call sub.msvcrt.dll__get_osfhandle
push 0
push 0
push 0
push eax
call sub.KERNEL32.dll_SetFilePointer
or eax, 0xffffffff
add esp, 0x10
jmp 0x405177
sub esp, 0xc
mov edx, dword [esp + 0x58]
mov edi, dword [edx + 0x10]
push edi
jmp 0x40531b
Function at 0x403890
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1e8
mov eax, dword [0x553910]
xor eax, esp
mov dword [esp + 0x1e4], eax
mov eax, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
push 0
mov dword [esp + 0x10], eax
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jns 0x4038f2
push 0
push str.error1
push str.error
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x1e4]
xor ecx, esp
call fcn.004d06e2
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 0x58]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
lea eax, [esp + 0x18]
push eax
call fcn.0042a390
add esp, 4
lea ecx, [esp + 0x18]
push 0xc
push str.downloader_
call fcn.00402dc0
lea eax, [esp + 0x18]
push eax
call fcn.0042a150
add esp, 4
test al, al
jne 0x40393d
lea eax, [esp + 0x18]
push eax
call fcn.0042a170
add esp, 4
push 0xe
push str.downloader.log
lea ecx, [esp + 0x20]
call fcn.00402dc0
call fcn.0042fb90
sub esp, 0x18
lea esi, [esp + 0x30]
mov edi, esp
lea edx, [esp + 0x30]
xor eax, eax
mov ecx, edi
mov dword [edi + 0x14], 7
mov dword [edi + 0x10], 0
mov word [edi], ax
cmp dword [esp + 0x44], 8
mov eax, dword [esp + 0x40]
cmovae esi, dword [esp + 0x30]
cmovae edx, dword [esp + 0x30]
lea eax, [esi + eax*2]
push eax
push edx
call fcn.00403af0
call fcn.0042fbb0
push str._r_n_r_n_start_run
push 0x3f
push str.wWinMain
call fcn.0042faf0
mov eax, dword [0x55c2c8]
add esp, 0x24
test eax, eax
jne 0x4039e6
push 0x4e0
call fcn.004d0705
mov esi, eax
add esp, 4
test esi, esi
je 0x4039df
push 0x4e0
push 0
push esi
call fcn.004db420
add esp, 0xc
mov ecx, esi
call fcn.0040df60
jmp 0x4039e1
xor eax, eax
mov dword [0x55c2c8], eax
push dword [esp + 0xc]
mov ecx, eax
call fcn.0040ec00
mov eax, dword [0x55c2c8]
test eax, eax
jne 0x403a2d
push 0x4e0
call fcn.004d0705
mov esi, eax
add esp, 4
test esi, esi
je 0x403a26
push 0x4e0
push 0
push esi
call fcn.004db420
add esp, 0xc
mov ecx, esi
call fcn.0040df60
jmp 0x403a28
xor eax, eax
mov dword [0x55c2c8], eax
mov esi, dword [esp + 0x10]
push 0x536c34
push str.downloader_start._version_is_:__s_
push 0x44
push str.wWinMain
mov dword [eax + 0x4dc], esi
call fcn.0042faf0
add esp, 0xc
mov ecx, esi
call fcn.004037d0
add esp, 4
push str.duilibInit2_end
push 0x46
push str.wWinMain
call fcn.0042faf0
xorps xmm0, xmm0
lea ecx, [esp + 0x44]
add esp, 0xc
movdqa xmmword [esp + 0x30], xmm0
movq qword [esp + 0x40], xmm0
mov dword [esp + 0x30], vtable.DNDownloaderImpl.0
call fcn.00433cd0
lea ecx, [esp + 0x44]
call fcn.0042fc70
sub esp, 8
lea ecx, [esp + 0x38]
call fcn.00404e70
test al, al
je 0x403aac
call fcn.0044e3c0
lea ecx, [esp + 0x30]
call fcn.004050e0
call dword [sym.imp.ole32.dll_CoUninitialize]
cmp dword [esp + 0x2c], 8
jb 0x403ace
push dword [esp + 0x18]
call fcn.004d0700
add esp, 4
mov ecx, dword [esp + 0x1ec]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.004d06e2
mov esp, ebp
pop ebp
ret 0x10