joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4c2ed0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, dword [ebp + 8]
mov al, byte [esi + 0x44]
test al, al
js 0x4c2fbf
push ebx
xor ebx, ebx
push edi
test al, al
jle 0x4c2f59
lea ecx, [esi + 0x78]
mov dword [ebp - 4], ecx
mov ecx, dword [ecx]
mov ecx, dword [ecx + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x4c2f3e
mov eax, dword [ecx + 0x14]
dec dword [eax + 0x78]
mov edx, dword [eax + 0x88]
mov dword [ecx + 0x10], edx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], ecx
push dword [ecx + 4]
mov eax, dword [eax + 0x98]
mov ecx, dword [ecx + 0x18]
mov edi, dword [esi]
dec ecx
cdq
push edx
push eax
push 0
push ecx
call fcn.00533620
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [ebp + 8]
add esp, 0x10
jmp 0x4c2f47
push ecx
call fcn.004fca50
add esp, 4
mov ecx, dword [ebp - 4]
inc ebx
movsx eax, byte [esi + 0x44]
add ecx, 4
mov dword [ebp - 4], ecx
cmp ebx, eax
jl 0x4c2ef1
mov eax, dword [esi + 0x74]
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x4c2fb0
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.00533620
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [ebp + 8]
add esp, 0x10
pop edi
pop ebx
mov byte [esi + 0x44], 0xff
pop esi
mov esp, ebp
pop ebp
ret
push edx
call fcn.004fca50
add esp, 4
mov byte [esi + 0x44], 0xff
pop edi
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x4d4080
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp + 8], 0
mov al, byte [esi + 0x44]
test al, al
js 0x4d412e
mov edx, dword [esi + 0x74]
je 0x4d41a0
push edx
call fcn.004dbca0
mov al, byte [esi + 0x44]
add esp, 4
sub al, 1
mov byte [esi + 0x44], al
je 0x4d4123
push ebx
nop word [eax + eax]
movsx eax, al
mov eax, dword [esi + eax*4 + 0x78]
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x4d410f
mov edx, dword [ecx + 0x14]
dec dword [edx + 0x78]
mov eax, dword [edx + 0x88]
mov dword [ecx + 0x10], eax
mov edi, dword [edx + 0x3c]
mov eax, dword [edx + 0x98]
mov dword [edx + 0x88], ecx
push dword [ecx + 4]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [edi]
dec ecx
cdq
push edx
push eax
push 0
push ecx
call fcn.00533620
push edx
push eax
mov eax, dword [ebx + 0x48]
push edi
call eax
add esp, 0x10
jmp 0x4d4118
push ecx
call fcn.004fca50
add esp, 4
mov al, byte [esi + 0x44]
sub al, 1
mov byte [esi + 0x44], al
jne 0x4d40c0
pop ebx
mov edx, dword [esi + 0x78]
mov dword [esi + 0x74], edx
jmp 0x4d41b5
mov ecx, dword [esi + 0x40]
test ecx, ecx
jne 0x4d4141
pop edi
mov byte [esi], 1
mov eax, 0x10
pop esi
pop ebp
ret
mov al, byte [esi]
cmp al, 3
jb 0x4d416a
cmp al, 4
jne 0x4d4152
mov eax, dword [esi + 4]
pop edi
pop esi
pop ebp
ret
push dword [esi + 0x10]
call fcn.004af550
mov ecx, dword [esi + 0x40]
add esp, 4
mov dword [esi + 0x10], 0
mov byte [esi], 1
movzx eax, byte [esi + 2]
lea edi, [esi + 0x74]
push eax
mov eax, dword [esi + 8]
push 0
push edi
push ecx
push dword [eax + 4]
call fcn.004d0010
mov ecx, eax
add esp, 0x14
mov dword [ebp + 8], ecx
test ecx, ecx
je 0x4d4194
pop edi
mov byte [esi], 1
pop esi
pop ebp
ret
mov edx, dword [edi]
mov byte [esi + 0x44], 0
mov al, byte [edx + 2]
mov byte [esi + 0x45], al
cmp byte [edx], 0
je 0x4d420e
movzx eax, byte [edx + 2]
xor ecx, ecx
cmp dword [esi + 0x70], ecx
sete cl
cmp ecx, eax
jne 0x4d420e
and byte [esi + 1], 0xf1
xor eax, eax
mov word [esi + 0x46], ax
mov word [esi + 0x32], ax
cmp word [edx + 0x18], ax
jbe 0x4d41d2
mov byte [esi], al
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebp
ret
cmp byte [edx + 8], al
jne 0x4d4135
cmp dword [edx + 4], 1
je 0x4d41f0
pop edi
pop esi
mov dword [ebp + 8], 0x10ed7
pop ebp
jmp fcn.004e8980
movzx ecx, byte [edx + 9]
mov eax, dword [edx + 0x38]
mov eax, dword [ecx + eax + 8]
bswap eax
push eax
push esi
mov byte [esi], 0
call fcn.004d3e00
add esp, 8
pop edi
pop esi
pop ebp
ret
push 0x58dd34
push 0x10eca
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004b8510
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
ret
Function at 0x4dcb10
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push edi
push dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
push edi
push str.sqlite_master
push edi
push str.SELECT_1_FROM___w_._s_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name___d_NULL
push dword [ebp + 8]
call fcn.004f9ea0
add esp, 0x18
cmp dword [ebp + 0x10], 0
jne 0x4dcb4d
push edi
push str.sqlite_master
push str.SELECT_1_FROM_temp._s_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name__1_NULL
push dword [ebp + 8]
call fcn.004f9ea0
add esp, 0x10
pop edi
pop ebp
ret
Function at 0x4e6f20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov ecx, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add ecx, ecx
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + ecx*8]
mov eax, 1
mov dword [ebp + 0xc], esi
mov dword [ebp - 0xc], eax
push eax
push str.sqlite_stat_d
lea eax, [ebp - 0x28]
push eax
push 0x18
call fcn.004af3e0
mov ecx, dword [edi]
lea ebx, [ebp - 0x28]
add esp, 0x10
mov dword [ebp - 4], ecx
xor edi, edi
mov dword [ebp - 8], ebx
cmp dword [ecx + 0x14], edi
jle 0x4e7010
nop
mov eax, dword [ebp + 0xc]
mov esi, edi
xor esi, 1
cmp edi, 2
cmovge esi, edi
test eax, eax
je 0x4e6fa5
mov ecx, dword [ecx + 0x10]
mov edx, esi
add edx, edx
mov ebx, dword [ecx + edx*8]
sub ebx, eax
nop
movzx edx, byte [eax]
movzx ecx, byte [ebx + eax]
cmp edx, ecx
jne 0x4e6fe8
test edx, edx
jne 0x4e6ffa
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov eax, dword [ecx + 0x10]
add esi, esi
push 0
push ebx
mov eax, dword [eax + esi*8 + 0xc]
add eax, 8
push eax
call fcn.004cc7e0
add esp, 0xc
mov eax, dword [eax + 8]
test eax, eax
je 0x4e7000
push dword [ebp + 0x14]
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push dword [ebp + 0x10]
mov edi, dword [ebp + 8]
push eax
push esi
push str.DELETE_FROM__Q._s_WHERE__s_Q
push edi
call fcn.004f9ea0
add esp, 0x18
jmp 0x4e709b
movzx ecx, byte [ecx + 0x584248]
movzx edx, byte [edx + 0x584248]
sub edx, ecx
jne 0x4e6ffd
inc eax
jmp 0x4e6f90
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
inc edi
cmp edi, dword [ecx + 0x14]
jl 0x4e6f70
mov esi, dword [ebp + 0xc]
mov edx, str.sqlite_master
sub edx, ebx
movzx ecx, byte [ebx]
movzx eax, byte [edx + ebx]
cmp ecx, eax
jne 0x4e7039
test ecx, ecx
jne 0x4e704b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
test esi, esi
jne 0x4e704e
neg ecx
sbb ecx, ecx
jmp 0x4e7072
movzx eax, byte [eax + 0x584248]
movzx ecx, byte [ecx + 0x584248]
sub ecx, eax
jne 0x4e7098
inc ebx
jmp 0x4e7017
test ecx, ecx
je 0x4e7098
mov edx, esi
mov esi, ecx
sub esi, dword [ebp + 0xc]
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4e7083
test ecx, ecx
jne 0x4e7095
mov esi, dword [ebp + 0xc]
test ecx, ecx
jne 0x4e7098
mov ecx, dword [ebp - 4]
mov ebx, str.sqlite_temp_master
jmp 0x4e6f60
movzx eax, byte [eax + 0x584248]
movzx ecx, byte [ecx + 0x584248]
sub ecx, eax
jne 0x4e706f
inc edx
jmp 0x4e7060
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, 4
jle 0x4e6f44
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4f1010
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 8
push ebx
push edi
xor ebx, ebx
xor edi, edi
cmp dword [eax + 0x14], ebx
jle 0x4f10a7
mov edx, dword [ebp + 0x10]
push esi
nop dword [eax]
mov eax, dword [eax + 0x10]
mov esi, edi
xor esi, 1
cmp edi, 2
cmovge esi, edi
shl esi, 4
add esi, eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 4], eax
test edx, edx
je 0x4f1065
mov esi, dword [esi]
mov eax, edx
sub esi, edx
movzx edx, byte [eax]
movzx ecx, byte [esi + eax]
cmp edx, ecx
jne 0x4f1092
test edx, edx
jne 0x4f10a4
mov eax, dword [ebp - 4]
push 0
push dword [ebp + 0xc]
add eax, 0x18
push eax
call fcn.004cc7e0
add esp, 0xc
mov ebx, dword [eax + 8]
test ebx, ebx
jne 0x4f1089
mov eax, dword [ebp + 8]
inc edi
mov edx, dword [ebp + 0x10]
cmp edi, dword [eax + 0x14]
jl 0x4f1030
pop esi
pop edi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, byte [ecx + 0x584248]
movzx edx, byte [edx + 0x584248]
sub edx, ecx
jne 0x4f107d
inc eax
jmp 0x4f1053
pop edi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4f10b0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x10]
sub esp, 8
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
nop
mov ecx, dword [ebp + 8]
xor esi, esi
cmp dword [ecx + 0x14], esi
jle 0x4f1131
nop word [eax + eax]
mov edi, esi
xor edi, 1
cmp esi, 2
cmovge edi, esi
test eax, eax
je 0x4f1102
mov ecx, dword [ecx + 0x10]
mov edx, edi
add edx, edx
mov ecx, dword [ecx + edx*8]
sub ecx, dword [ebp + 0x10]
mov dword [ebp - 4], ecx
nop
movzx edx, byte [eax]
movzx ecx, byte [ecx + eax]
cmp edx, ecx
jne 0x4f1165
test edx, edx
jne 0x4f1177
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
add edi, edi
push 0
push ebx
mov eax, dword [eax + edi*8 + 0xc]
add eax, 8
push eax
call fcn.004cc7e0
add esp, 0xc
mov eax, dword [eax + 8]
test eax, eax
jne 0x4f11d7
mov ecx, dword [ebp + 8]
inc esi
mov eax, dword [ebp + 0x10]
cmp esi, dword [ecx + 0x14]
jl 0x4f10d0
mov edx, str.sqlite_master
sub edx, ebx
nop dword [eax + eax]
movzx ecx, byte [ebx]
movzx eax, byte [edx + ebx]
cmp ecx, eax
jne 0x4f1180
test ecx, ecx
jne 0x4f1192
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x10]
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x4f1195
neg ecx
sbb ecx, ecx
jmp 0x4f11b2
movzx ecx, byte [ecx + 0x584248]
movzx edx, byte [edx + 0x584248]
sub edx, ecx
jne 0x4f1125
mov ecx, dword [ebp - 4]
inc eax
jmp 0x4f10f0
movzx eax, byte [eax + 0x584248]
movzx ecx, byte [ecx + 0x584248]
sub ecx, eax
jne 0x4f11d5
inc ebx
jmp 0x4f1140
test ecx, ecx
je 0x4f11d5
mov esi, ecx
mov edx, eax
sub esi, eax
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4f11c0
test ecx, ecx
jne 0x4f11d2
mov eax, dword [ebp + 0x10]
test ecx, ecx
jne 0x4f11d5
mov ebx, str.sqlite_temp_master
jmp 0x4f10c0
movzx eax, byte [eax + 0x584248]
movzx ecx, byte [ecx + 0x584248]
sub ecx, eax
jne 0x4f11af
inc edx
jmp 0x4f11a0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4fbe30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x4fbe5a
mov eax, dword [edx + 0x18]
cmp eax, dword [ecx + 0x18]
jb 0x4fbe5a
cmp dword [edx + 0x60], 0
je 0x4fbe56
mov dword [ebp + 8], ecx
pop ebp
jmp fcn.0051da20
xor eax, eax
pop ebp
ret
mov eax, dword [edx + 0x28]
test eax, eax
jne 0x4fbe58
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x4fbe78
mov dword [ebp + 8], ecx
pop ebp
jmp fcn.004d7930
mov dword [ebp + 8], ecx
pop ebp
jmp fcn.004d8ae0
Function at 0x521f90
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push 0
push 0x14
mov dword [edi], 0
call fcn.004f9810
mov esi, eax
add esp, 8
test esi, esi
jne 0x521fb7
pop edi
lea eax, [esi + 7]
pop esi
pop ebp
ret
cmp byte [0x5b4c3c], 0
push ebx
mov ebx, dword [ebp + 0x10]
je 0x522002
mov eax, dword [0x5b4d2c]
test eax, eax
je 0x521fdb
push 0xc8
call eax
add esp, 4
test eax, eax
jne 0x522002
mov eax, dword [ebp + 0xc]
mov dword [esi + 8], eax
lea eax, [esi + 4]
push eax
push 0
push esi
push 0x505fe0
push 0
push 0
mov dword [esi + 0xc], ebx
call sub.msvcrt.dll__beginthreadex
add esp, 0x18
mov dword [esi], eax
test eax, eax
jne 0x52200f
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
cmp dword [esi + 8], 0
jne 0x522028
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push ebx
mov dword [esi + 4], eax
call dword [ebp + 0xc]
add esp, 4
mov dword [esi + 0x10], eax
pop ebx
mov dword [edi], esi
xor eax, eax
pop edi
pop esi
pop ebp
ret
Function at 0x5479e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 0x14]
push ebp
mov ebp, dword [esp + 0x14]
mov eax, dword [ebx - 4]
test ebp, ebp
jle 0x547a4a
mov ecx, dword [esp + 0xc]
sub ecx, ebx
push esi
mov dword [esp + 0x10], ecx
push edi
nop dword [eax]
mov esi, dword [ecx + ebx]
lea ebx, [ebx + 4]
mov ecx, eax
mov edi, esi
and edi, 0xffff00ff
and ecx, 0xffff00ff
add edi, ecx
mov edx, esi
movzx ecx, ax
and edx, 0xff00
add edx, ecx
and eax, 0xff00ffff
mov ecx, dword [esp + 0x14]
xor edi, edx
and esi, 0xff00ff00
and edi, 0xff00ff
add eax, esi
xor eax, edi
mov dword [ebx - 4], eax
sub ebp, 1
jne 0x547a00
pop edi
pop esi
pop ebp
pop ebx
ret

Function at 0x547a50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, dword [esp + 0x10]
test ebp, ebp
jle 0x547ac4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
sub ecx, eax
sub dword [esp + 0x14], eax
push ebx
push esi
mov dword [esp + 0x14], ecx
push edi
nop
mov ebx, dword [ecx + eax]
lea eax, [eax + 4]
mov esi, dword [eax - 4]
mov ecx, ebx
and ecx, 0xffff00ff
mov edi, esi
and edi, 0xffff00ff
mov edx, esi
add edi, ecx
and edx, 0xff00
movzx ecx, bx
and esi, 0xff00ff00
add edx, ecx
and ebx, 0xff00ffff
mov ecx, dword [esp + 0x20]
xor edi, edx
and edi, 0xff00ff
add ebx, esi
xor edi, ebx
mov dword [ecx + eax - 4], edi
mov ecx, dword [esp + 0x18]
sub ebp, 1
jne 0x547a70
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x548130
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
xor ecx, ecx
push ebx
mov ebx, dword [esp + 8]
push ebp
push edi
xor ebp, ebp
lea eax, [ebx + eax*4]
mov edi, eax
sub edi, ebx
add edi, 3
shr edi, 2
cmp ebx, eax
cmova edi, ecx
test edi, edi
je 0x54819e
push esi
mov esi, dword [esp + 0x1c]
nop word [eax + eax]
mov edx, dword [ebx]
lea esi, [esi + 2]
mov ecx, edx
lea ebx, [ebx + 4]
shr ecx, 0x10
mov eax, edx
shr eax, 0xd
inc ebp
xor cl, al
mov eax, edx
and cl, 7
shr eax, 0x10
xor cl, al
mov eax, edx
mov byte [esi - 2], cl
mov ecx, edx
shr ecx, 5
shr eax, 3
xor cl, al
shr edx, 5
and cl, 0x1f
xor cl, dl
mov byte [esi - 1], cl
cmp ebp, edi
jb 0x548160
pop esi
pop edi
pop ebp
pop ebx
ret

Function at 0x5481b0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 8]
xor ecx, ecx
push ebx
push ebp
push edi
mov edi, dword [esp + 0x10]
xor ebp, ebp
lea eax, [edi + eax*4]
mov ebx, eax
sub ebx, edi
add ebx, 3
shr ebx, 2
cmp edi, eax
cmova ebx, ecx
test ebx, ebx
je 0x548214
push esi
mov esi, dword [esp + 0x1c]
nop word [eax + eax]
mov edx, dword [edi]
lea esi, [esi + 2]
mov ecx, edx
lea edi, [edi + 4]
shr ecx, 0x10
mov eax, edx
shr eax, 0xc
inc ebp
xor cl, al
mov eax, edx
shr eax, 0x10
and cl, 0xf
xor cl, al
mov eax, edx
shr eax, 0x1c
and dl, 0xf0
or al, dl
mov byte [esi - 2], cl
mov byte [esi - 1], al
cmp ebp, ebx
jb 0x5481e0
pop esi
pop edi
pop ebp
pop ebx
ret
Function at 0x55f180
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x328
mov eax, dword [0x5b5ef4]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x17
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
test eax, eax
je 0x55f1a7
mov ecx, 5
int 0x29
push 2
call fcn.00534306
push 0x50
lea eax, [ebp - 0x320]
push 0
push eax
call sub.msvcrt.dll_memset
push 0x2cc
lea eax, [ebp - 0x2d0]
push 0
push eax
call sub.msvcrt.dll_memset
lea eax, [ebp - 0x320]
add esp, 0x1c
mov dword [ebp - 0x328], eax
lea eax, [ebp - 0x2d0]
mov dword [ebp - 0x324], eax
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x224], ecx
mov dword [ebp - 0x228], edx
mov dword [ebp - 0x22c], ebx
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x234], edi
mov word [ebp - 0x208], ss
mov word [ebp - 0x214], cs
mov word [ebp - 0x238], ds
mov word [ebp - 0x23c], es
mov word [ebp - 0x240], fs
mov word [ebp - 0x244], gs
pushfd
pop dword [ebp - 0x210]
mov eax, dword [ebp + 4]
mov dword [ebp - 0x218], eax
lea eax, [ebp + 4]
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x2d0], 0x10001
mov eax, dword [eax - 4]
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp + 4]
mov dword [ebp - 0x320], 0xc0000417
mov dword [ebp - 0x31c], 1
mov dword [ebp - 0x314], eax
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
push 0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea eax, [ebp - 0x328]
push eax
call dword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
test eax, eax
jne 0x55f2b2
test esi, esi
jne 0x55f2b2
push 2
call fcn.00534306
add esp, 4
push 0xc0000417
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.0053436b
mov esp, ebp
pop ebp
ret
Function at 0x56da90
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push esi
call fcn.0056dac0
mov esi, dword [ebp + 8]
test al, al
je 0x56daae
push esi
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push esi
call fcn.0056dad0
add esp, 4
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x56dc00
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 2
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x56dc5c
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x56dc5c
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x56dc5c
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x56dc5c
cmp dword [ecx + 0x74], 0xe
jbe 0x56dc5c
cmp dword [ecx + 0xe8], 0
je 0x56dc5c
push dword [ebp + 8]
call fcn.0056dad0
add esp, 4
lea eax, [ebp - 0xc]
mov byte [ebp - 1], 0
mov dword [ebp - 0x18], eax
lea eax, [ebp - 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 1]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push eax
push 0x5bb654
call fcn.0056d8a0
add esp, 8
cmp dword [ebp - 8], 0
jne 0x56dc91
push dword [ebp + 8]
call fcn.0056da90
mov esp, ebp
pop ebp
ret

Function at 0x56dcd0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x56dd2c
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x56dd2c
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x56dd2c
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x56dd2c
cmp dword [ecx + 0x74], 0xe
jbe 0x56dd2c
cmp dword [ecx + 0xe8], 0
je 0x56dd2c
push dword [ebp + 8]
call fcn.0056dad0
add esp, 4
lea eax, [ebp - 0xc]
mov byte [ebp - 1], 0
mov dword [ebp - 0x18], eax
lea eax, [ebp - 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 1]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push eax
push 0x5bb654
call fcn.0056d8a0
add esp, 8
cmp dword [ebp - 8], 0
jne 0x56dd61
push dword [ebp + 8]
call fcn.0056da90
mov esp, ebp
pop ebp
ret

Function at 0x56ebf0
Capabilities:
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov ecx, dword [eax + 0xa4]
shl ecx, 0x10
or ecx, dword [eax + 0xa8]
cmp ecx, 0x60000
jae 0x56ec1a
mov eax, 2
pop ebp
ret
push esi
call fcn.0056eb20
mov esi, eax
mov eax, dword [ebp + 8]
mov edx, dword [esi + 0x70]
mov ecx, edx
and cl, 2
movzx ecx, cl
neg ecx
sbb ecx, ecx
inc eax
cmp eax, 3
ja case.default.0x56ec3a
jmp dword [eax*4 + 0x56ec70]
or edx, 2
lea eax, [ecx + 2]
mov dword [esi + 0x70], edx
pop esi
pop ebp
ret
and edx, 0xfffffffd
mov dword [esi + 0x70], edx
lea eax, [ecx + 2]
pop esi
pop ebp
ret
call sub.msvcrt.dll__errno
mov dword [eax], 0x16
call fcn.0055f110
or eax, 0xffffffff
pop esi
pop ebp
ret
Function at 0x56ec80
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x504
mov eax, dword [0x5b5ef4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x56ed7b
push 0x2d
push esi
call sub.msvcrt.dll_strchr
add esp, 8
test eax, eax
je 0x56ed7b
xor ecx, ecx
mov al, byte [ecx + esi]
lea edx, [ecx + ecx]
test al, al
je 0x56ecda
cbw
inc ecx
mov word [ebp + edx - 0x204], ax
cmp ecx, 0x100
jne 0x56ecb8
jmp 0x56ed7b
cmp edx, 0x200
jae 0x56ede1
xor eax, eax
mov word [ebp + edx - 0x204], ax
lea eax, [ebp - 0x204]
push 0x2d
push eax
call sub.msvcrt.dll_wcsrchr
add esp, 8
test eax, eax
je 0x56ed7b
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
lea eax, [ebp - 0x504]
push 0xff
push eax
push 0x1001
lea eax, [ebp - 0x204]
push eax
call edi
test eax, eax
je 0x56ed7a
lea edx, [ebp - 0x504]
mov ecx, 0x5f
lea edx, [edx + eax*2]
mov word [edx - 2], cx
mov ecx, 0x100
sub ecx, eax
lea eax, [ebp - 0x204]
push ecx
push edx
push 0x1002
push eax
call edi
test eax, eax
je 0x56ed7a
lea edi, [ebp - 0x504]
xor eax, eax
nop
movzx ecx, word [edi + eax*2]
lea edx, [ebp - 0x304]
test cx, cx
je 0x56edc3
mov byte [edx + eax], cl
inc eax
cmp eax, 0x100
jne 0x56ed60
pop edi
mov eax, dword [0x5bb68c]
test eax, eax
jne 0x56eda1
push str.setlocale
call fcn.0056fec0
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x56ed9c
or eax, 0xffffffff
mov dword [0x5bb68c], eax
lea ecx, [eax + 1]
neg ecx
sbb ecx, ecx
and ecx, eax
je 0x56edcf
push esi
push ebx
call ecx
add esp, 8
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0053436b
mov esp, ebp
pop ebp
ret
mov byte [edx + eax], 0
lea esi, [ebp - 0x304]
jmp 0x56ed7a
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
xor ecx, ebp
pop ebx
call fcn.0053436b
mov esp, ebp
pop ebp
ret
call fcn.005345f5
int3
Function at 0x407020
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x5000]
push edi
or ebp, 0xffffffff
jmp 0x407042
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x407049
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x407038
mov eax, 1
add ebx, ebx
jne 0x40705b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
ja 0x407050
jne 0x40706c
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x407050
xor ecx, ecx
sub eax, 3
jb 0x407080
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x4070f2
mov ebp, eax
add ebx, ebx
jne 0x40708b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x407098
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x4070bc
inc ecx
add ebx, ebx
jne 0x4070a8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
ja 0x40709d
jne 0x4070b9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x40709d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jle 0x4070dc
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x4070cd
jmp 0x40703e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x4070dc
add edi, ecx
jmp 0x40703e
pop esi
sub edi, dword [edi - 4]
push edi
mov edi, esi
mov ecx, 0x68
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x4070fe
cmp byte [edi], 1
jne 0x4070fe
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov eax, ebx
loop 0x407103
pop edi
mov eax, dword [edi]
or eax, eax
je 0x407174
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x739c]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x73ec]
xchg edx, eax
mov al, byte [edi]
inc edi
or al, al
je 0x40712b
push edx
mov ecx, edi
jns 0x40715b
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push edx
call dword [esi + 0x73f0]
pop edx
or eax, eax
je 0x407172
mov dword [ebx], eax
add ebx, 4
jmp 0x407148
popal
ret
popal
jmp 0x401c3e