joyce8/EMBER2024-capa huggingface dataset:
Function at 0x6629be90
Capabilities:
Get thread local storage value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov eax, dword [ebx]
test edx, edx
je 0x6629bfb0
cmp eax, 1
je 0x6629bee4
mov eax, ebx
call fcn.6629ae70
lea edi, [eax + 4]
mov esi, eax
mov dword [esp], edi
call fcn.6629a6f0
mov ebp, dword [ebx]
test ebp, ebp
je 0x6629bef0
cmp ebp, 1
jne 0x6629bf80
mov dword [esp], edi
call fcn.6629aa30
test esi, esi
je 0x6629bee4
mov eax, esi
call fcn.6629b160
add esp, 0x2c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], 0x6629b220
mov dword [esp + 0x18], esi
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov ebp, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp], eax
call ebp
sub esp, 4
test eax, eax
je 0x6629bfe8
mov eax, dword [eax + 0xc]
mov dword [esp + 0x1c], eax
lock or dword [esp], 0
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call ebp
sub esp, 4
test eax, eax
je 0x6629bfd0
lea edx, [esp + 0x14]
mov dword [eax + 0xc], edx
lock or dword [esp], 0
call dword [esp + 0x44]
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call ebp
sub esp, 4
test eax, eax
je 0x6629bfc0
mov edx, dword [esp + 0x1c]
mov dword [eax + 0xc], edx
mov dword [ebx], 1
jmp 0x6629bed1
mov dword [esp], 2
call dword [0x6633708c]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], str._once__p_is__d_n
mov dword [esp], eax
call sub.msvcrt.dll_fprintf
jmp 0x6629bed1
add esp, 0x2c
mov eax, 0x16
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.6629b590
test eax, eax
jne 0x6629bf68
jmp 0x6633103d
call fcn.6629b590
test eax, eax
jne 0x6629bf42
jmp 0x6633104f
call fcn.6629b590
test eax, eax
jne 0x6629bf1c
jmp 0x66331048
mov eax, dword [esp + 0x1c]
mov dword [0], eax
ud2
mov eax, dword [pe_dos_header]
ud2
lea eax, [esp + 0x14]
mov dword [0], eax
ud2

Function at 0x6629c240
Capabilities:
Get thread local storage value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x1c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x6629c2b8
lea ebp, [ebx + 0x38]
xor edi, edi
mov dword [esp], ebp
call fcn.6629ad80
mov eax, dword [ebx + 0x28]
cmp dword [esp + 0x30], eax
jae 0x6629c294
mov eax, dword [ebx + 0x30]
mov edx, dword [esp + 0x30]
cmp byte [eax + edx], 0
je 0x6629c294
mov eax, dword [ebx + 0x2c]
mov edi, dword [eax + edx*4]
mov dword [esp], ebp
call fcn.6629add0
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, edi
sub esp, 4
add esp, 0x1c
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.6629b590
mov ebx, eax
jmp 0x6629c26b
Function at 0x6629c2d0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov esi, dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x6629c3f0
lea edi, [ebx + 0x38]
mov dword [esp], edi
call fcn.6629ad80
cmp esi, dword [ebx + 0x28]
jae 0x6629c350
mov edx, dword [ebx + 0x2c]
mov eax, dword [esp + 0x44]
mov dword [edx + esi*4], eax
mov eax, dword [ebx + 0x30]
mov byte [eax + esi], 1
mov dword [esp], edi
call fcn.6629add0
mov eax, dword [esp + 0x14]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
sub esp, 4
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebp, [esi + 1]
lea eax, [ebp*4]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
test eax, eax
je 0x6629c3fc
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sub.msvcrt.dll_realloc
mov edx, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x18], eax
je 0x6629c3fc
mov ecx, dword [ebx + 0x28]
mov eax, ebp
mov dword [esp + 4], 0
mov dword [esp + 0x1c], edx
sub eax, ecx
lea ecx, [edx + ecx*4]
shl eax, 2
mov dword [esp], ecx
mov dword [esp + 8], eax
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x28]
mov edx, dword [esp + 0x18]
mov ecx, ebp
mov dword [esp + 4], 0
sub ecx, eax
add eax, edx
mov dword [esp + 8], ecx
mov dword [esp], eax
call sub.msvcrt.dll_memset
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [ebx + 0x28], ebp
mov dword [ebx + 0x2c], edx
mov dword [ebx + 0x30], eax
jmp 0x6629c318
call fcn.6629b590
mov ebx, eax
jmp 0x6629c305
mov dword [esp], edi
call fcn.6629add0
mov eax, 0xc
jmp 0x6629c340

Function at 0x6629c480
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x1c
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x6629c4a8
mov eax, dword [eax + 0x18]
add esp, 0x1c
ret
call fcn.6629b590
test eax, eax
jne 0x6629c49d
add esp, 0x1c
ret

Function at 0x6629c510
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x1c
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x6629c538
add eax, 0xc
add esp, 0x1c
ret
call fcn.6629b590
test eax, eax
jne 0x6629c52d
jmp 0x6629c530
Function at 0x6629c570
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
mov esi, dword [esp + 0x20]
call fcn.6629b6e0
mov dword [eax + 4], esi
mov ebx, eax
mov eax, dword [eax + 0xb4]
test eax, eax
je 0x6629c592
call fcn.6629b710
test byte [ebx + 0x20], 0x30
jne 0x6629c5ac
add ebx, 0x70
mov dword [esp + 4], 1
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_longjmp]
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebx, eax
push edx
test eax, eax
je 0x6629c5ed
cmp dword [ebx + 0x14], 0
mov eax, dword [eax + 0x18]
je 0x6629c62d
mov dword [ebx + 0x68], 1
mov esi, dword [ebx + 4]
test eax, eax
je 0x6629c5e2
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
xor eax, eax
mov dword [ebx + 0x18], eax
test byte [ebx + 0x24], 4
jne 0x6629c5f6
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll__endthreadex]
mov eax, dword [ebx + 0x14]
mov dword [ebx], 0xdeadbeef
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
push ecx
mov dword [ebx + 0x14], eax
mov eax, ebx
call fcn.6629b4b0
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push edx
push edx
jmp 0x6629c5ed
mov dword [ebx], 0xdeadbeef
test eax, eax
je 0x6629c641
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
xor eax, eax
mov esi, dword [ebx + 4]
mov dword [ebx + 0x18], eax
jmp 0x6629c60e

Function at 0x6629c650
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [0x66385bd8]
test eax, eax
jne 0x6629c660
xor eax, eax
ret
sub esp, 0x1c
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x6629c6a0
mov edx, dword [eax + 0x10]
test edx, edx
jle 0x6629c690
xor eax, eax
add esp, 0x1c
ret
test byte [eax + 0x20], 3
je 0x6629c684
mov eax, dword [eax + 0x24]
and eax, 1
jmp 0x6629c686
call fcn.6629b590
test eax, eax
jne 0x6629c67d
jmp 0x6629c684

Function at 0x6629c6b0
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x1c
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x6629c6f0
mov edx, dword [esp + 0x20]
test edx, edx
jle 0x6629c6e0
lock add dword [eax + 0x10], 1
add esp, 0x1c
ret
lock sub dword [eax + 0x10], 1
add esp, 0x1c
ret
call fcn.6629b590
test eax, eax
jne 0x6629c6cd
add esp, 0x1c
ret
Function at 0x6629c7f0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x6629c860
test byte [ebx + 0x20], 0xc
jne 0x6629c820
mov eax, dword [0x66385bd8]
test eax, eax
jne 0x6629c830
add esp, 0x14
pop ebx
pop esi
ret
lea esi, [ebx + 0x1c]
mov dword [esp], esi
call fcn.6629a6f0
movzx eax, byte [ebx + 0x20]
test al, 3
je 0x6629c852
mov edx, dword [ebx + 0x24]
test dl, 1
je 0x6629c852
mov ecx, dword [ebx + 0x10]
test ecx, ecx
jle 0x6629c871
mov dword [esp], esi
call fcn.6629aa30
add esp, 0x14
pop ebx
pop esi
ret
call fcn.6629b590
mov ebx, eax
test eax, eax
jne 0x6629c811
add esp, 0x14
pop ebx
pop esi
ret
and eax, 0xfffffff3
and edx, 0xfffffffe
or eax, 4
mov dword [ebx + 0x24], edx
mov byte [ebx + 0x20], al
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x6629c891
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push eax
mov dword [esp], esi
call fcn.6629aa30
call fcn.6629c700
nop
push edi
push esi
push ebx
sub esp, 0x10
mov eax, dword [esp + 0x20]
test eax, eax
je 0x6629c920
mov dword [esp], eax
call fcn.6629a430
mov edi, eax
mov eax, 0xfffffffe
cmp eax, edi
mov eax, 0
sbb eax, edx
jb 0x6629c960
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov esi, edi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x6629c9c0
test edi, edi
je 0x6629c93a
call fcn.6629c7f0
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x6629c998
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.6629a540
call fcn.6629c7f0
add esp, 0x10
xor eax, eax
pop ebx
pop esi
pop edi
ret
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x6629c9b0
call fcn.6629c7f0
mov dword [esp], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
call fcn.6629c7f0
add esp, 0x10
xor eax, eax
pop ebx
pop esi
pop edi
ret
call fcn.6629b4d0
mov eax, dword [0x663370ac]
mov esi, 0xffffffff
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
jne 0x6629c8f2
call fcn.6629b590
mov ebx, eax
jmp 0x6629c8f2
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_Sleep]
sub esp, 4
jmp 0x6629c90e
call fcn.6629b590
jmp 0x6629c93a
call fcn.6629b590
mov ebx, eax
jmp 0x6629c8ee
Function at 0x662f7b60
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x1c
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll__fileno_1
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll__read
mov ebp, eax
cmp eax, 0xffffffff
je 0x662f7ba0
add esp, 0x1c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret 8
call dword [sym.imp.msvcrt.dll__errno]
cmp dword [eax], 4
je 0x662f7b71
add esp, 0x1c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret 8
Function at 0x4012e0
Capabilities:
Terminate process

Disassembly:
sub esp, 0x10
push ebx
push ebp
mov ebp, dword [esp + 0x1c]
push esi
push edi
mov edi, dword [0x47da4c]
mov ebx, ecx
push 0x18
mov dword [esp + 0x20], ebx
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
push 0x473a0b
lea esi, [esp + 0x18]
mov dword [esp + 0x18], eax
mov dword [eax], 0x10
mov dword [eax + 4], 0
call fcn.00406930
test edi, edi
je 0x40133b
push edi
mov eax, esi
push eax
call fcn.004069a0
push 0x4766a0
mov ecx, esi
push ecx
call fcn.004069a0
push str.normproto
lea edx, [esp + 0x18]
push edx
call fcn.004069a0
mov esi, dword [esp + 0x14]
or edi, 0xffffffff
cmp dword [esi + 4], 0
jne 0x40135b
xor eax, eax
jmp 0x401361
mov dword [esi + 4], edi
lea eax, [esi + 8]
push eax
push str._nWriting__s_...
call dword [sym.imp.MSVCR90.dll_printf]
add esp, 8
cmp dword [esi + 4], 0
jne 0x40137a
xor edi, edi
jmp 0x401380
mov dword [esi + 4], edi
lea edi, [esi + 8]
push 0x4766c0
push edi
call dword [sym.imp.MSVCR90.dll_fopen]
add esp, 8
test eax, eax
jne 0x4013a4
push edi
call fcn.004072a0
mov edi, eax
add esp, 4
mov dword [esp + 0x18], edi
jmp 0x4013aa
mov dword [esp + 0x18], eax
mov edi, eax
movsx eax, word [ebx]
push eax
push str._0d_n
push edi
call dword [sym.imp.MSVCR90.dll_fprintf]
mov ecx, dword [ebx + 4]
mov ax, word [ebx]
add esp, 0xc
mov ebx, edi
call fcn.004057b0
test ebp, ebp
je 0x40141b
mov esi, dword [ebp]
mov edx, dword [esi + 0xc]
xor al, al
mov bl, 1
call fcn.00401f40
mov edi, eax
cmp edi, 1
jl 0x401437
mov ecx, dword [esi]
mov edx, dword [esp + 0x18]
push edi
push ecx
push str._n_s__d_n
push edx
call dword [sym.imp.MSVCR90.dll_fprintf]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0xc]
mov di, word [ecx]
mov ebx, dword [esp + 0x28]
add esp, 0x10
call fcn.00401470
mov ebp, dword [ebp + 4]
test ebp, ebp
jne 0x4013ce
mov esi, dword [esp + 0x14]
mov edi, ebx
push edi
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
push esi
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov ebp, dword [esi + 0xc]
mov al, 1
xor bl, bl
mov edx, ebp
call fcn.00401f40
push eax
xor al, al
mov bl, 1
mov edx, ebp
call fcn.00401f40
mov edx, dword [esi]
push eax
push edi
push edx
push str._nError__Not_enough_protos_for__s:__d_protos___d_significant_protos___d_insignificant_protos__n
call dword [sym.imp.MSVCR90.dll_printf]
add esp, 0x14
push 1
call dword [sym.imp.MSVCR90.dll_exit]
int3
Function at 0x4018f0
Capabilities:
Terminate process

Disassembly:
push ecx
push esi
push 0x10
call dword [sym.imp.MSVCR90.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
jne 0x401940
push str.Not_enough_memory
push str._nError:__s__n
call fcn.00406b70
push 0x7d0
push str.Code__d
push 2
lea eax, [esp + 0x18]
push str.signal_termination_handler
push eax
mov dword [esp + 0x20], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401945
sub eax, edx
inc eax
call fcn.00407310
mov dword [esi], eax
mov ecx, edi
mov edx, eax
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x401960
mov dword [esi + 0xc], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, esi
pop esi
pop ecx
ret

Function at 0x402210
Capabilities:
Terminate process

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push ebp
push esi
push 0x28
call dword [sym.imp.MSVCR90.dll_malloc]
mov esi, eax
xor ebp, ebp
add esp, 4
cmp esi, ebp
jne 0x402268
push str.Not_enough_memory
push str._nError:__s__n
call fcn.00406b70
push 0x7d0
push str.Code__d
push 2
lea eax, [esp + 0x20]
push str.signal_termination_handler
push eax
mov dword [esp + 0x28], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
push edi
movsx edi, bx
lea eax, [edi + edi*2]
add eax, eax
add eax, eax
add eax, eax
mov word [esi], bx
mov dword [esi + 8], ebp
mov dword [esi + 0x18], ebp
mov dword [esi + 0x10], ebp
mov dword [esi + 0x14], ebp
call fcn.00407310
cmp edi, ebp
mov dword [esi + 4], eax
jle 0x402317
mov eax, dword [esp + 0x1c]
fld qword [0x477040]
xor ecx, ecx
add eax, 8
movzx ebx, byte [eax - 8]
mov edx, dword [esi + 4]
mov byte [ecx + edx], bl
movzx ebx, byte [eax - 7]
mov edx, dword [esi + 4]
mov byte [ecx + edx + 1], bl
mov edx, dword [esi + 4]
fld dword [eax - 4]
add eax, 0x18
fstp dword [ecx + edx + 4]
mov edx, dword [esi + 4]
fld dword [eax - 0x18]
fstp dword [ecx + edx + 8]
mov edx, dword [esi + 4]
fld dword [eax - 0x18]
fsub dword [eax - 0x1c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ecx + edx + 0xc]
mov edx, dword [esi + 4]
fld dword [edx + ecx + 0xc]
add edx, ecx
fmul st(1)
add ecx, 0x18
sub edi, 1
fstp dword [edx + 0x10]
mov edx, dword [esi + 4]
fld dword [eax - 0x18]
fadd dword [eax - 0x1c]
fmul st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [ecx + edx - 4]
jne 0x4022a3
mov ebx, dword [esp + 0x18]
fstp st(0)
mov eax, dword [esp + 0x1c]
push eax
push ebx
call fcn.00405e90
add esp, 8
pop edi
mov dword [esi + 0xc], eax
mov dword [esi + 0x1c], ebp
mov dword [esi + 0x20], ebp
mov dword [esi + 0x24], ebp
mov eax, esi
pop esi
pop ebp
pop ebx
pop ecx
ret
Function at 0x402340
Capabilities:
Terminate process

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push esi
xor esi, esi
cmp dword [ebx + 0x10], esi
je 0x40238a
push str.Cant_add_samples_after_they_have_been_clustered
push str._nError:__s__n
call fcn.00406b70
push 0xfa0
push str.Code__d
push 2
lea eax, [esp + 0x20]
push str.signal_termination_handler
push eax
mov dword [esp + 0x28], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
movsx eax, word [ebx]
push ebp
lea eax, [eax*4 + 0x10]
call fcn.00407310
mov ecx, dword [esp + 0x18]
mov ebp, eax
xor edx, edx
cmp dx, word [ebx]
mov dword [ebp], 4
mov dword [ebp + 4], esi
mov dword [ebp + 8], esi
mov dword [ebp + 0xc], ecx
jge 0x4023c5
movsx ecx, word [ebx]
mov esi, dword [esp + 0x14]
push edi
lea edi, [ebp + 0x10]
rep movsd dword es:[edi], dword [esi]
pop edi
inc dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
push ebp
lea eax, [ebp + 0x10]
call fcn.00405f40
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
add esp, 4
cmp eax, dword [ecx + 0x18]
jl 0x4023e8
inc eax
mov dword [ecx + 0x18], eax
mov eax, ebp
pop ebp
pop esi
pop ebx
ret
Function at 0x403920
Capabilities:
Terminate process

Disassembly:
push ecx
push esi
push 0x24
call dword [sym.imp.MSVCR90.dll_malloc]
mov esi, eax
add esp, 4
test esi, esi
jne 0x403970
push str.Not_enough_memory
push str._nError:__s__n
call fcn.00406b70
push 0x7d0
push str.Code__d
push 2
lea eax, [esp + 0x18]
push str.signal_termination_handler
push eax
mov dword [esp + 0x20], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
movsx edi, di
lea eax, [edi*4]
call fcn.00407310
mov dword [esi + 0xc], eax
xor eax, eax
test edi, edi
jle 0x4039a0
lea ecx, [ebx + 0x10]
jmp 0x403990
fld dword [ecx]
mov edx, dword [esi + 0xc]
fstp dword [edx + eax*4]
inc eax
add ecx, 4
cmp eax, edi
jl 0x403990
mov eax, dword [esi]
and eax, 0xfffffff3
or eax, 1
mov dword [esi], eax
mov dword [esi + 8], 0
mov ecx, dword [ebx]
mov edx, dword [ebx]
add ecx, ecx
add ecx, ecx
xor ecx, eax
add edx, edx
and ecx, 0xf
add edx, edx
xor ecx, edx
mov dword [esi], ecx
mov dword [esi + 4], ebx
or dword [ebx], 2
mov eax, esi
pop esi
pop ecx
ret
Function at 0x404750
Capabilities:
Terminate process

Disassembly:
push ecx
push 0x18
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
test eax, eax
jne 0x40479d
push str.Not_enough_memory
push str._nError:__s__n
call fcn.00406b70
push 0x7d0
push str.Code__d
push 2
lea eax, [esp + 0x14]
push str.signal_termination_handler
push eax
mov dword [esp + 0x1c], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
mov cx, word [esp + 8]
fld qword [esp + 0xc]
fstp qword [eax + 8]
mov word [eax], cx
pop ecx
ret

Function at 0x4055c0
Capabilities:
Terminate process

Disassembly:
push ecx
push 0x14
call dword [sym.imp.MSVCR90.dll_malloc]
add esp, 4
test eax, eax
jne 0x40560d
push str.Not_enough_memory
push str._nError:__s__n
call fcn.00406b70
push 0x7d0
push str.Code__d
push 2
lea eax, [esp + 0x14]
push str.signal_termination_handler
push eax
mov dword [esp + 0x1c], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
mov ecx, dword [esp + 8]
mov edx, dword [ecx]
xor ecx, ecx
mov dword [eax], edx
test edx, edx
jbe 0x40562e
lea edx, [eax + 4]
mov edi, edi
mov dword [edx], 0
inc ecx
add edx, 4
cmp ecx, dword [eax]
jb 0x405620
pop ecx
ret

Function at 0x405630
Capabilities:
Terminate process

Disassembly:
sub esp, 0x5c
mov eax, dword [0x478018]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
lea eax, [esp + 4]
push eax
mov ebx, ecx
push 0x476998
push ebx
call dword [sym.imp.MSVCR90.dll_fscanf]
add esp, 0xc
cmp eax, 1
jne 0x4056d1
mov eax, dword [esp + 4]
test eax, eax
jl 0x4056d1
cmp eax, dword [edi]
ja 0x4056d1
push ebp
push edi
call fcn.004055c0
add esp, 4
cmp dword [esp + 8], 0
mov ebp, eax
jle 0x4056be
push esi
lea ebx, [ebx]
lea ecx, [esp + 0x14]
push ecx
push 0x4769bc
push ebx
call dword [sym.imp.MSVCR90.dll_fscanf]
lea edx, [esp + 0x20]
push edx
mov ecx, edi
call fcn.00405710
mov esi, eax
mov eax, dword [edi + esi*4 + 4]
push eax
call fcn.00405aa0
mov dword [ebp + esi*4 + 4], eax
mov eax, dword [esp + 0x20]
dec eax
add esp, 0x14
mov dword [esp + 0xc], eax
test eax, eax
jg 0x405680
pop esi
mov ecx, dword [esp + 0x60]
mov eax, ebp
pop ebp
pop ebx
xor ecx, esp
call fcn.004076a7
add esp, 0x5c
ret
push str.Illegal_number_of_feature_sets
push str._nError:__s__n
call fcn.00406b70
push 0xbb9
push str.Code__d
push 2
lea ecx, [esp + 0x1c]
push str.signal_termination_handler
push ecx
mov dword [esp + 0x24], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
int3
Function at 0x405710
Capabilities:
Terminate process

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x10]
push esi
push edi
mov edi, dword [ecx]
xor eax, eax
test edi, edi
jbe 0x405761
lea esi, [ecx + 4]
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
mov edx, ebp
jmp 0x405730
mov bl, byte [ecx]
cmp bl, byte [edx]
jne 0x405750
test bl, bl
je 0x40574c
mov bl, byte [ecx + 1]
cmp bl, byte [edx + 1]
jne 0x405750
add ecx, 2
add edx, 2
test bl, bl
jne 0x405730
xor ecx, ecx
jmp 0x405755
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
je 0x40579e
inc eax
add esi, 4
cmp eax, edi
jb 0x405724
push str.Illegal_short_name_for_a_feature
push str._nError:__s__n
call fcn.00406b70
push 0x7d0
push str.Code__d
push 2
lea edx, [esp + 0x24]
push str.signal_termination_handler
push edx
mov dword [esp + 0x2c], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x405a00
Capabilities:
Terminate process

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, eax
movzx eax, word [esi]
lea eax, [eax*4 + 4]
push edi
push eax
call dword [sym.imp.MSVCR90.dll_malloc]
mov ebx, eax
xor eax, eax
add esp, 4
mov dword [ebx], esi
xor edi, edi
cmp ax, word [esi]
jae 0x405a53
mov ebp, dword [sym.imp.MSVCR90.dll_fscanf]
lea esi, [ebx + 4]
mov ecx, dword [esp + 0x18]
push esi
push 0x476768
push ecx
call ebp
add esp, 0xc
cmp eax, 1
jne 0x405a5b
mov edx, dword [ebx]
movzx eax, word [edx]
inc edi
add esi, 4
cmp edi, eax
jl 0x405a31
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
pop ecx
ret
push str.Illegal_feature_parameter_spec
push str._nError:__s__n
call fcn.00406b70
push 0x3e8
push str.Code__d
push 2
lea ecx, [esp + 0x24]
push str.signal_termination_handler
push ecx
mov dword [esp + 0x2c], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
int3

Function at 0x405aa0
Capabilities:
Terminate process

Disassembly:
sub esp, 8
push ebp
mov ebp, dword [esp + 0x10]
lea eax, [esp + 4]
push eax
push 0x476998
push ebx
call dword [sym.imp.MSVCR90.dll_fscanf]
add esp, 0xc
cmp eax, 1
jne 0x405b2e
mov eax, dword [esp + 4]
test eax, eax
jl 0x405b2e
push esi
push edi
mov edi, eax
lea eax, [eax*4 + 4]
call fcn.00407310
mov esi, eax
xor ecx, ecx
mov word [esi + 2], di
mov word [esi], cx
xor edi, edi
cmp dword [esp + 0xc], ecx
jle 0x405b25
lea esp, [esp]
push ebx
mov eax, ebp
call fcn.00405a00
movzx ecx, word [esi]
add esp, 4
cmp cx, word [esi + 2]
jb 0x405b14
test eax, eax
je 0x405b1e
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
jmp 0x405b1e
movzx edx, cx
mov dword [esi + edx*4 + 4], eax
inc word [esi]
inc edi
cmp edi, dword [esp + 0xc]
jl 0x405af0
pop edi
mov eax, esi
pop esi
pop ebp
add esp, 8
ret
push str.Illegal_number_of_features_in_set
push str._nError:__s__n
call fcn.00406b70
push 0x3e9
push str.Code__d
push 2
lea eax, [esp + 0x1c]
push str.signal_termination_handler
push eax
mov dword [esp + 0x24], str.Signal_termination_handler_called
call fcn.00406a30
add esp, 0x1c
push 3
call dword [sym.imp.MSVCR90.dll_exit]
int3