Function at 0x401000
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, 1
xor eax, eax
cmp esi, edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 2], al
mov byte [ebp - 1], al
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edi
jle 0x40125c
mov eax, dword [ebp + 0xc]
mov dword [ebp - 8], 2
lea ecx, [eax + 4]
add eax, 8
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], eax
jmp 0x401051
mov esi, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
mov ebx, dword [edx]
mov al, byte [ebx]
cmp al, 0x2f
je 0x401064
cmp al, 0x2d
jne case.0x40117d.73
mov al, byte [ebx + 1]
mov cl, byte [ebx + 2]
add ebx, 2
cmp cl, 0x20
mov byte [ebp + 0xf], al
jne 0x40107e
mov cl, byte [ebx + 1]
inc ebx
cmp cl, 0x20
je 0x401075
cmp byte [ebx], 0
jne 0x401130
cmp dword [ebp - 8], esi
jge 0x4010ae
movsx eax, al
push eax
call fcn.0040171d
add esp, 4
cmp eax, 0x50
jne 0x4010ab
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx]
cmp byte [edx], 0x2f
je 0x401219
mov al, byte [ebp + 0xf]
dec esi
cmp edi, esi
jne 0x4010cb
movsx eax, al
push eax
call fcn.0040171d
add esp, 4
cmp eax, 0x50
je 0x401219
mov al, byte [ebp + 0xf]
mov ecx, dword [ebp - 8]
mov edx, dword [ebp + 8]
cmp ecx, edx
jge 0x4010f3
movsx edx, al
push edx
call fcn.0040171d
add esp, 4
cmp eax, 0x44
jne 0x4010f0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
cmp byte [ecx], 0x2f
je 0x401130
mov al, byte [ebp + 0xf]
cmp edi, esi
jne 0x401110
movsx edx, al
push edx
call fcn.0040171d
add esp, 4
cmp eax, 0x44
je 0x401130
cmp edi, esi
je case.0x40117d.73
mov esi, dword [ebp - 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
inc edi
inc esi
add edx, 4
mov ebx, dword [eax + 4]
add eax, 4
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], eax
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
push ecx
call fcn.00401707
mov edx, eax
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
movsx eax, byte [ebp + 0xf]
add eax, 0xffffffbc
and ecx, 3
cmp eax, 0x31
rep movsb byte es:[edi], byte [esi]
ja case.0x40117d.73
xor ecx, ecx
mov cl, byte [eax + 0x401480]
jmp dword [ecx*4 + 0x401468]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [ecx + ecx + 2]
push edx
call fcn.00401707
add esp, 4
mov dword [ebp - 0x18], eax
push 0xff
push eax
push 0xffffffffffffffff
push ebx
push 1
push 1
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x401219
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ecx + ecx + 2]
push eax
call fcn.00401707
add esp, 4
mov dword [ebp - 0x24], eax
jmp 0x4011a0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea ecx, [ecx + ecx + 2]
push ecx
call fcn.00401707
add esp, 4
mov dword [ebp - 0x28], eax
jmp 0x4011a0
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [ecx + ecx + 2]
push edx
call fcn.00401707
add esp, 4
mov dword [ebp - 0x2c], eax
jmp 0x4011a0
mov byte [ebp - 1], 1
jmp 0x401219
mov byte [ebp - 2], 1
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 8]
mov eax, 4
inc edi
add edx, eax
add ecx, eax
mov eax, dword [ebp + 8]
inc esi
cmp edi, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
jl 0x40104e
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40125c
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x40125c
mov cl, byte [ebp - 2]
test cl, cl
je 0x401282
push str._t____u_User___p_Password_
push str.Usage:_InsRepIM.exe__f_Model_File___r_Repository_connect_string__n
push str._s_s_n
push 0x407198
call fcn.0040161c
add esp, 0x10
push 0xa0
call fcn.00401529
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push eax
call esi
mov edi, eax
mov eax, dword [ebp - 0x18]
push eax
call esi
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x24], eax
push ecx
call esi
mov edx, dword [ebp - 0x2c]
mov ebx, eax
push edx
call esi
push 0
mov dword [ebp + 0xc], eax
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
jge 0x4012cc
push str.Error_entering_data_into_repository_n
push 0x407198
call fcn.0040161c
add esp, 8
push 0xd
call fcn.00401529
lea eax, [ebp - 0x20]
push eax
push 0x406100
push 7
push 0
push 0x406120
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp + 8], eax
test eax, eax
mov eax, dword [ebp - 0x20]
jge 0x4012f2
test eax, eax
je 0x40134d
mov cl, byte [ebp - 1]
test cl, cl
mov ecx, dword [eax]
jne 0x40130e
mov edx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp - 0x24]
push ebx
push edx
push edi
push eax
call dword [ecx + 0x1c]
mov dword [ebp + 8], eax
jmp 0x401340
lea edx, [ebp - 0x1c]
push edx
push 0x406110
push eax
call dword [ecx]
test eax, eax
mov dword [ebp + 8], eax
jl 0x401333
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x1c]
push edx
push ebx
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x20]
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x401340
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x40134d
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [ebp + 8]
test eax, eax
jge 0x401436
lea eax, [ebp - 0x2c]
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SetErrorInfo]
test eax, eax
jne 0x401417
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x2c]
lea edx, [ebp + 0xc]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov edx, dword [ebp + 0xc]
push edx
call esi
mov edi, eax
test edi, edi
mov dword [ebp - 0x28], edi
je 0x4013e2
push edi
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x4013e2
mov eax, dword [ebp + 0xc]
test eax, eax
mov ebx, eax
jne 0x4013ad
xor esi, esi
push esi
jmp 0x4013f5
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.004017f0
mov esi, esp
push 0
push 0
push edi
push esi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov edi, dword [ebp - 0x28]
push esi
jmp 0x4013f5
mov al, byte [ebp - 1]
test al, al
jne 0x4013f0
push str.Error:_Installing_the_model_n
jmp 0x4013f5
push str.Error:_UnInstalling_the_repository_n
push 0x407198
call fcn.0040161c
mov eax, dword [ebp + 0xc]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
add esp, 8
test eax, eax
je 0x401412
push eax
call esi
push edi
call esi
jmp 0x401456
mov al, byte [ebp - 1]
test al, al
jne 0x40142a
push str.Error:_Installing_the_model_n
push 0x407198
jmp 0x40144e
push str.Error:_UnInstalling_the_repository_n
push 0x407198
jmp 0x40144e
mov al, byte [ebp - 1]
test al, al
jne 0x401444
push str.Model_installed_successfully._n
jmp 0x401449
push 0x407040
push 0x407178
call fcn.0040161c
add esp, 8
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp + 8]
push eax
call fcn.00401529
lea ecx, [ecx]
movlps xmm0, qword [eax]
test byte [ecx], dl
inc eax
add cl, dh
adc dword [eax], eax
mov ch, 0x11
inc eax
add bl, dl
adc dword [eax], eax
adc eax, 0x4012
add eax, 84215041
add eax, 0x5050505
add eax, 0x5030502
add eax, 0x5050504
add eax, 0x5050505
add eax, 0x5050505
add eax, 0x5010500
add eax, 0x5050505
add eax, 0x5020505
add eax, dword [0x90900405]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]