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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x438
mov dword [ebp - 0xc], 0
jmp 0x4036cd
mov eax, dword [ebp - 0xc]
add eax, 0x1b0
mov dword [esp + 8], 0x414058
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._SetDlgItemTextA_12
sub esp, 0xc
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
setle al
test al, al
jne 0x4036a8
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x188
mov dword [esp + 4], 0x1a5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._SendDlgItemMessageA_20
sub esp, 0x14
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x4038d1
lea edx, [ebp - 0x418]
mov eax, dword [ebp - 0x10]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x189
mov dword [esp + 4], 0x1a5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._SendDlgItemMessageA_20
sub esp, 0x14
lea eax, [ebp - 0x418]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x416040
mov dword [esp + 4], str._spackages_s
lea eax, [ebp - 0x314]
mov dword [esp], eax
call sym._wsprintfA
lea eax, [ebp - 0x314]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x100
lea eax, [ebp - 0x110]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x414058
mov dword [esp + 4], str.main
mov dword [esp], str.files
call sym._GetPrivateProfileStringA_24
sub esp, 0x18
lea eax, [ebp - 0x210]
mov dword [esp + 4], eax
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym.GetVersionFromName_char__char_
test al, al
je 0x4037e1
lea eax, [ebp - 0x210]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1b0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._SetDlgItemTextA_12
sub esp, 0xc
lea eax, [ebp - 0x314]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x100
lea eax, [ebp - 0x110]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x414058
mov dword [esp + 4], str.gpib
mov dword [esp], str.files
call sym._GetPrivateProfileStringA_24
sub esp, 0x18
lea eax, [ebp - 0x210]
mov dword [esp + 4], eax
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym.GetVersionFromName_char__char_
test al, al
je 0x403858
lea eax, [ebp - 0x210]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1b1
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._SetDlgItemTextA_12
sub esp, 0xc
lea eax, [ebp - 0x314]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0x100
lea eax, [ebp - 0x110]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x414058
mov dword [esp + 4], str.fpga
mov dword [esp], str.files
call sym._GetPrivateProfileStringA_24
sub esp, 0x18
lea eax, [ebp - 0x210]
mov dword [esp + 4], eax
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym.GetVersionFromName_char__char_
test al, al
je 0x4038d2
lea eax, [ebp - 0x210]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x1b2
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._SetDlgItemTextA_12
sub esp, 0xc
jmp 0x4038d2
nop
leave
ret
Function at 0x404388
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x27
mov dword [esp + 4], 1
mov dword [esp], str.Mensor_Instrument_Communications_Class_n
call sym._fwrite
leave
ret

Function at 0x4067d2
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x14
mov dword [esp + 4], 1
mov dword [esp], 0x414486
call sym._fwrite
leave
ret

Function at 0x407300
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1f
mov dword [esp + 4], 1
mov dword [esp], str.Mensor_Controller_Module_Class_n
call sym._fwrite
leave
ret

Function at 0x407f66
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1b
mov dword [esp + 4], 1
mov dword [esp], str.Mensor_Sensor_Module_Class_n
call sym._fwrite
leave
ret

Function at 0x408210
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
mov dword [esp], str.Mensor_Installer_Class_n
call sym._fwrite
leave
ret

Function at 0x408e1c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x15
mov dword [esp + 4], 1
mov dword [esp], 0x414778
call sym._fwrite
leave
ret
Function at 0x409452
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x361]
xor eax, 1
test al, al
je 0x40946f
mov al, 0
jmp 0x4094d8
mov dword [ebp - 0x10], 0x100
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym._strlen
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x31c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x31c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0x41481f
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
mov al, 1
leave
ret

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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x361]
xor eax, 1
test al, al
je 0x4094f4
mov al, 0
jmp 0x409520
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x31c]
mov dword [esp + 0xc], 0
mov edx, dword [ebp + 0x10]
mov dword [esp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
mov al, 1
leave
ret

Function at 0x40952a
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x128
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x361]
xor eax, 1
test al, al
je 0x40954d
mov eax, str.Ethernet_not_initialized
jmp 0x409627
mov dword [ebp - 0x14], 0x100
mov dword [esp + 8], 1
mov dword [esp + 4], 0x41483b
mov dword [esp], 0x41b980
call sym._memcpy
mov dword [ebp - 0x10], 0
jmp 0x4095f3
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x31c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xff
lea edx, [ebp - 0x114]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._recv_16
sub esp, 0x10
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jns 0x4095ce
mov dword [esp + 8], 0xf
mov dword [esp + 4], str._Receive_Error
mov dword [esp], 0x41b980
call sym._memcpy
jmp 0x409622
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xff
jg 0x4095f3
lea eax, [ebp - 0x114]
mov dword [esp + 4], eax
mov dword [esp], 0x41b980
call sym._strcat
cmp dword [ebp - 0x10], 0xff
jg 0x409618
mov dword [esp + 4], 0xa
mov dword [esp], 0x41b980
call sym._strchr
test eax, eax
jne 0x409618
mov al, 1
jmp 0x40961a
mov al, 0
test al, al
jne 0x409579
mov eax, 0x41b980
leave
ret
Function at 0x40962a
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x361]
xor eax, 1
test al, al
je 0x409644
mov al, 1
jmp 0x4096aa
mov dword [ebp - 0x14], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
jmp 0x40969b
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp + 0x10]
sub edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x31c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], edx
mov edx, dword [ebp - 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._recv_16
sub esp, 0x10
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jns 0x40968f
mov al, 0
jmp 0x4096aa
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp + 0x10]
setl al
test al, al
jne 0x409653
mov al, 1
leave
ret

Function at 0x40984c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x18
mov dword [esp + 4], 1
mov dword [esp], str.Serial_Controller_Class_n
call sym._fwrite
leave
ret

Function at 0x409e1e
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x305]
xor eax, 1
test al, al
je 0x409e7d
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_port_not_initialized:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x409f89
mov dword [ebp - 0xc], 0x100
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x318]
cmp eax, 1
jne 0x409ec9
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x310]
movsx eax, al
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._c__s_r_n
mov dword [esp + 4], 0x100
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym.___mingw_snprintf
jmp 0x409eee
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s_r_n
mov dword [esp + 4], 0x100
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym.___mingw_snprintf
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym._strlen
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x308]
mov dword [esp + 0x10], 0
lea ecx, [ebp - 0x10]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
lea edx, [ebp - 0x110]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._WriteFile_20
sub esp, 0x14
lea eax, [ebp - 0x110]
mov dword [esp], eax
call sym._strlen
mov edx, dword [ebp - 0x10]
cmp eax, edx
je 0x409f87
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_write_length_error:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x409f89
mov al, 1
leave
ret
Function at 0x409f8c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x305]
xor eax, 1
test al, al
je 0x409fe8
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_port_not_initialized:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x40a0b4
cmp dword [ebp + 0x10], 0
jns 0x40a034
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_illegal_write_length:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x40a0b4
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x308]
mov dword [esp + 0x10], 0
lea ecx, [ebp - 0xc]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._WriteFile_20
sub esp, 0x14
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0xc]
cmp edx, eax
je 0x40a0b2
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_write_length_error:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x40a0b4
mov al, 1
leave
ret
Function at 0x40a0e2
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 0
mov byte [ebp - 0x11], 0
mov dword [ebp - 0xc], 0x100
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x305]
xor eax, 1
test al, al
je 0x40a159
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_port_not_initialized:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov eax, dword [ebp + 8]
add eax, 0x204
jmp 0x40a2b8
mov dword [esp + 8], 1
mov dword [esp + 4], 0x414903
mov dword [esp], 0x41ba80
call sym._memcpy
jmp 0x40a2a5
mov dword [esp], 0x41ba80
call sym._strlen
cmp eax, 0xfe
ja 0x40a22a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x308]
mov dword [esp + 0x10], 0
lea edx, [ebp - 0x18]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
lea edx, [ebp - 0x1a]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._ReadFile_20
sub esp, 0x14
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x40a219
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_read_timeout:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov eax, dword [ebp + 8]
add eax, 0x204
jmp 0x40a2b8
mov byte [ebp - 0x19], 0
mov eax, 0x41ba80
mov al, byte [eax]
test al, al
je 0x40a273
jmp 0x40a287
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_input_buffer_overflow:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov eax, dword [ebp + 8]
add eax, 0x204
jmp 0x40a2b8
mov al, byte [ebp - 0x1a]
cmp al, 0xd
je 0x40a281
mov al, byte [ebp - 0x1a]
cmp al, 0xa
jne 0x40a287
mov byte [ebp - 0x1a], 0
jmp 0x40a29a
lea eax, [ebp - 0x1a]
mov dword [esp + 4], eax
mov dword [esp], 0x41ba80
call sym._strcat
mov al, byte [ebp - 0x1a]
cmp al, 0xa
jne 0x40a2a5
mov byte [ebp - 0x11], 1
mov al, byte [ebp - 0x11]
xor eax, 1
test al, al
jne 0x40a17a
mov eax, 0x41ba80
leave
ret
Function at 0x40a2ba
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 0
mov eax, dword [ebp + 8]
mov al, byte [eax + 0x305]
xor eax, 1
test al, al
je 0x40a320
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_port_not_initialized:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x40a4cc
cmp dword [ebp + 0x10], 0
jns 0x40a36c
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_illegal_read_length:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x40a4cc
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c], eax
call sym._clock
mov dword [ebp - 0x18], eax
fld dword [ebp + 0x14]
fld dword [0x41495c]
fmulp st(1)
fld dword [0x414960]
faddp st(1)
fnstcw word [ebp - 0x2a]
mov ax, word [ebp - 0x2a]
mov ah, 0xc
mov word [ebp - 0x2c], ax
fldcw word [ebp - 0x2c]
fistp dword [ebp - 0x14]
fldcw word [ebp - 0x2a]
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
lea eax, [edx + eax]
cmp eax, dword [ebp - 0x18]
jge 0x40a4bb
mov eax, dword [ebp - 0x18]
mov edx, 4
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [ebp - 0x10], eax
jmp 0x40a4bb
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x308]
mov dword [esp + 0x10], 0
lea ecx, [ebp - 0x24]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x1c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._ReadFile_20
sub esp, 0x14
test eax, eax
setne al
mov byte [ebp - 0x1d], al
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x1c], eax
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x24]
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0
jle 0x40a4bb
call sym._clock
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x40a467
call sym._clock
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
lea eax, [edx + eax]
cmp eax, dword [ebp - 0x18]
jge 0x40a467
mov eax, dword [ebp - 0x18]
mov edx, 4
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
lea eax, [edx + eax]
add eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0xc]
jg 0x40a4bb
mov eax, dword [ebp + 8]
mov byte [eax + 0x304], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x30c]
mov eax, dword [eax*4 + 0x41314c]
mov edx, dword [ebp + 8]
add edx, 0x204
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.Error:_read_timeout:_s
mov dword [esp + 4], 0x40
mov dword [esp], edx
call sym.___mingw_snprintf
mov al, 0
jmp 0x40a4cc
cmp dword [ebp + 0x10], 0
setg al
test al, al
jne 0x40a3d2
mov al, 1
leave
ret
Function at 0x40c690
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
test ecx, ecx
mov dword [ebp - 0xc], ebx
mov ebx, eax
mov dword [ebp - 8], esi
mov esi, edx
mov dword [ebp - 4], edi
mov edi, ecx
jne 0x40c6b6
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x38]
mov dword [esp + 8], 0x1c
mov dword [esp + 4], eax
mov dword [esp], ebx
call sym._VirtualQuery_12
sub esp, 0xc
test eax, eax
je 0x40c74a
mov eax, dword [ebp - 0x24]
cmp eax, 4
je 0x40c705
cmp eax, 0x40
je 0x40c705
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], 0x40
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memcpy
mov eax, dword [ebp - 0x24]
cmp eax, 4
je 0x40c6a9
cmp eax, 0x40
je 0x40c6a9
lea eax, [ebp - 0x1c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
jmp 0x40c6a9
mov dword [esp + 8], 0x34
mov dword [esp + 4], str..._.._runtime_pseudo_reloc.c
mov dword [esp], str.VirtualQuery__addr__b__sizeof_b__
call sym.__assert
lea esi, [esi]
lea edi, [edi]

Function at 0x40c9c0
Capabilities:
Accept command line arguments

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push esi
push ebx
push ecx
sub esp, 0x6c
call sym.___main
call sym._GetCommandLineA_0
mov ebx, eax
lea eax, [ebp - 0x5c]
mov dword [esp], eax
call sym._GetStartupInfoA_4
sub esp, 4
test ebx, ebx
je 0x40ca60
movzx edx, byte [ebx]
cmp dl, 9
je 0x40caa4
cmp dl, 0x20
je 0x40caa4
cmp dl, 0x22
je 0x40ca44
cmp dl, 9
mov eax, edx
je 0x40ca58
cmp dl, 0x20
je 0x40cab0
test dl, dl
lea esi, [esi]
jne 0x40ca32
jmp 0x40ca60
cmp al, 0x20
je 0x40cab0
test al, al
nop
je 0x40ca60
add ebx, 1
movzx eax, byte [ebx]
cmp al, 9
jne 0x40ca24
jmp 0x40ca58
cmp al, 0x22
je 0x40ca4e
add ebx, 1
movzx eax, byte [ebx]
test al, al
jne 0x40ca40
cmp al, 0x22
jne 0x40ca58
add ebx, 1
movzx eax, byte [ebx]
cmp al, 0x20
je 0x40cab0
cmp al, 9
je 0x40cab0
test byte [ebp - 0x30], 1
mov esi, 0xa
je 0x40ca6f
movzx esi, word [ebp - 0x2c]
mov dword [esp], 0
call sym._GetModuleHandleA_4
sub esp, 4
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._WinMain_16
sub esp, 0x10
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
lea esp, [ecx - 4]
ret
add ebx, 1
jmp 0x40c9f1
add ebx, 1
movzx eax, byte [ebx]
cmp al, 9
je 0x40cab0
cmp al, 0x20
jne 0x40ca60
nop
jmp 0x40cab0
Function at 0x40cd88
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x14
mov ebx, dword [0x420630]
call sym._TlsAlloc_0
cmp eax, 0xffffffff
je 0x40cdc4
mov dword [ebx + 0x24], eax
mov dword [esp + 4], 0
mov dword [esp], eax
call sym.___mingwthr_key_dtor
test eax, eax
sete al
movzx eax, al
mov dword [ebx + 0x28], eax
add esp, 0x14
pop ebx
leave
ret
call sym._GetLastError_0
jmp 0x40cdb2

Function at 0x40cee8
Capabilities:
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov ebx, eax
mov esi, edx
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x20], eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x1c], edx
mov eax, dword [esi]
jmp 0x40cf11
mov dword [eax + 0x20], edi
mov eax, dword [esi]
mov eax, dword [eax]
mov dword [esi], eax
test eax, eax
je 0x40cfd8
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, 0xa
mov ecx, dword [ebp - 0x1c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
mov dword [esp], 1
call dword [ebp - 0x20]
test eax, eax
jne 0x40cffc
cmp edi, 5
je 0x40d001
mov edx, dword [ebp - 0x2c]
test edx, edx
je 0x40cf9b
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], 0xa
mov dword [esp], 1
call dword [ebp - 0x2c]
mov edi, eax
cmp eax, 7
je 0x40d001
cmp eax, 8
jne 0x40cffc
mov eax, dword [esi]
mov edi, dword [eax]
mov eax, dword [0x420630]
mov edx, dword [eax + 0x28]
test edx, edx
js 0x40cfec
test edx, edx
je 0x40cf08
mov dword [esp + 4], edi
mov eax, dword [eax + 0x24]
mov dword [esp], eax
call sym._TlsSetValue_8
sub esp, 8
test eax, eax
jne 0x40cf0b
call sym._GetLastError_0
jmp 0x40cf0b
mov dword [ebp - 0x2c], 0
mov edi, 5
mov al, 0x1a
jmp 0x40cf26
call dbg.fc_key_init_once
mov eax, dword [0x420630]
mov edx, dword [eax + 0x28]
jmp 0x40cfab
mov edi, 2
mov eax, edi
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret