Function at 0x401090
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x1fb4
call fcn.004055a0
mov eax, dword [0x40d050]
xor eax, esp
mov dword [esp + 0x1fb0], eax
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
mov dword [esp + 0x18], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x4c], ecx
push ebx
push esi
mov dword [esp + 0x58], eax
xor edx, edx
mov dword [esp + 0x48], eax
movapd xmm1, xmm0
mov dword [esp + 0x40], eax
mov esi, str.ESRI_Shapefile
mov dword [esp + 0x34], eax
mov eax, str.contour
push edi
mov dword [esp + 0x64], eax
xor eax, eax
push str.VERSION_NUM
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], 1
movsd qword [esp + 0x34], xmm1
movsd qword [esp + 0x74], xmm0
movsd qword [esp + 0x6c], xmm0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], eax
call sub.gdal111.dll__GDALVersionInfo_4
push eax
call dword [sym.imp.MSVCR120.dll_atoi]
add esp, 4
cmp eax, 0x578
jge 0x401161
mov eax, dword [esp + 0x24]
push 0x406374
push dword [eax]
push str.At_least__GDAL___1.4.0_is_required_for_this_version_of__s__which_was_compiled_against_GDAL__s_n
call dword [sym.imp.MSVCR120.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR120.dll_fprintf]
add esp, 0x10
push 1
call dword [sym.imp.MSVCR120.dll_exit]
call sub.gdal111.dll__GDALAllRegister_0
call sub.gdal111.dll_OGRRegisterAll
push 0
lea eax, [esp + 0x28]
push eax
push dword [ebp + 8]
call sub.gdal111.dll__GDALGeneralCmdLineProcessor_12
mov edi, eax
mov esi, 1
mov dword [esp + 0x50], edi
cmp edi, esi
jle 0x40192a
mov ebx, dword [sym.imp.MSVCR120.dll__stricmp]
mov eax, dword [esp + 0x24]
push str.__utility_version
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
je 0x4017bb
mov eax, dword [esp + 0x24]
push str.__help
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
je 0x4017a5
mov eax, dword [esp + 0x24]
push 0x406450
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x4011f7
lea eax, [esi + 1]
cmp eax, edi
jge 0x401800
mov esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x5c], eax
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push str._off
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x40123e
lea eax, [esi + 1]
cmp eax, edi
jge 0x40181c
mov esi, eax
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
call dword [sym.imp.MSVCR120.dll_atof]
fstp qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x6c]
add esp, 4
movsd qword [esp + 0x68], xmm0
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push 0x4064a4
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x401285
lea eax, [esi + 1]
cmp eax, edi
jge 0x401838
mov esi, eax
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
call dword [sym.imp.MSVCR120.dll_atof]
fstp qword [esp + 0x34]
movsd xmm0, qword [esp + 0x34]
add esp, 4
movsd qword [esp + 0x30], xmm0
jmp 0x4014fd
mov eax, dword [esp + 0x24]
push 0x4064cc
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x4012ed
dec edi
cmp esi, edi
jge 0x401854
mov eax, dword [esp + 0x38]
cmp eax, 0x3e8
jge 0x4012e4
mov eax, dword [esp + 0x24]
push dword [eax + esi*4 + 4]
call sub.gdal111.dll_CPLGetValueType
add esp, 4
test eax, eax
je 0x4012e4
mov eax, dword [esp + 0x24]
inc esi
push dword [eax + esi*4]
call dword [sym.imp.MSVCR120.dll_atof]
mov eax, dword [esp + 0x3c]
add esp, 4
fstp qword [esp + eax*8 + 0x78]
inc eax
mov dword [esp + 0x38], eax
cmp esi, edi
jl 0x4012a7
mov edi, dword [esp + 0x50]
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push 0x4064f8
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x401328
lea eax, [esi + 1]
cmp eax, edi
jge 0x40186e
mov esi, eax
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
call dword [sym.imp.MSVCR120.dll_atoi]
add esp, 4
mov dword [esp + 0x48], eax
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push 0x406520
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x40135a
lea eax, [esi + 1]
cmp eax, edi
jge 0x40188a
mov esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x40], eax
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push str._dsco
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x401398
lea eax, [esi + 1]
cmp eax, edi
jge 0x4018a6
mov esi, eax
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
push dword [esp + 0x50]
call sub.gdal111.dll_CSLAddString
add esp, 8
mov dword [esp + 0x4c], eax
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push str._lco
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x4013d6
lea eax, [esi + 1]
cmp eax, edi
jge 0x4018c2
mov esi, eax
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
push dword [esp + 0x48]
call sub.gdal111.dll_CSLAddString
add esp, 8
mov dword [esp + 0x44], eax
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push 0x4065a0
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x4013f8
mov dword [esp + 0x60], 1
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push str._snodata
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x40143b
lea eax, [esi + 1]
cmp eax, edi
jge 0x4018de
mov esi, eax
mov dword [esp + 0x54], 1
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
call dword [sym.imp.MSVCR120.dll_atof]
fstp qword [esp + 0x74]
add esp, 4
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push str._nln
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x40146d
lea eax, [esi + 1]
cmp eax, edi
jge 0x4018fa
mov esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x64], eax
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push str._inodata
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
jne 0x40148c
mov dword [esp + 0x58], 1
jmp 0x4014f7
mov eax, dword [esp + 0x24]
push 0x40660c
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
je 0x4014ef
mov eax, dword [esp + 0x24]
push str._quiet
push dword [eax + esi*4]
call ebx
add esp, 8
test eax, eax
je 0x4014ef
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jne 0x4014d1
mov eax, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x30]
mov ecx, dword [eax + esi*4]
mov dword [esp + 0x2c], ecx
jmp 0x401501
cmp dword [esp + 0x28], 0
jne 0x401916
mov eax, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x30]
mov edx, dword [eax + esi*4]
mov dword [esp + 0x28], edx
jmp 0x401505
mov dword [esp + 0x3c], 1
movsd xmm0, qword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
inc esi
cmp esi, edi
jl 0x401193
ucomisd xmm0, qword [0x4067c8]
lahf
test ah, 0x44
jp 0x401527
cmp dword [esp + 0x38], 0
je 0x40192a
test ecx, ecx
jne 0x401530
jmp 0x4017f6
test edx, edx
je 0x401920
mov eax, dword [esp + 0x3c]
mov edx, 0x40538a
test eax, eax
mov eax, 0
push 0
cmove eax, edx
push ecx
mov dword [esp + 0x44], eax
call sub.gdal111.dll__GDALOpen_8
mov esi, eax
mov dword [esp + 0x50], esi
test esi, esi
jne 0x401569
push 2
call dword [sym.imp.MSVCR120.dll_exit]
mov edi, dword [esp + 0x48]
push edi
push esi
call sub.gdal111.dll__GDALGetRasterBand_8
mov dword [esp + 0x48], eax
test eax, eax
jne 0x401596
push edi
push str.Band__d_does_not_exist_on_dataset.
push 1
push 3
call sub.gdal111.dll_CPLError
add esp, 0x10
push 2
call dword [sym.imp.MSVCR120.dll_exit]
cmp dword [esp + 0x54], 0
jne 0x4015b4
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x4015b4
lea ecx, [esp + 0x54]
push ecx
push eax
call sub.gdal111.dll__GDALGetRasterNoDataValue_8
fstp qword [esp + 0x70]
push esi
xor ebx, ebx
call sub.gdal111.dll__GDALGetProjectionRef_4
mov edx, eax
test edx, edx
je 0x4015da
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4015c7
sub ecx, esi
je 0x4015da
push edx
call sub.gdal111.dll__OSRNewSpatialReference_4
mov ebx, eax
mov esi, dword [esp + 0x40]
push esi
call sub.gdal111.dll_OGRGetDriverByName
add esp, 4
test eax, eax
jne 0x40160c
push esi
push str.Unable_to_find_format_driver_named__s._n
call dword [sym.imp.MSVCR120.dll___iob_func]
add eax, 0x40
push eax
call dword [sym.imp.MSVCR120.dll_fprintf]
add esp, 0xc
push 0xa
call dword [sym.imp.MSVCR120.dll_exit]
push dword [esp + 0x4c]
push dword [esp + 0x2c]
push eax
call sub.gdal111.dll_OGR_Dr_CreateDataSource
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x40162f
push 1
call dword [sym.imp.MSVCR120.dll_exit]
mov edx, dword [esp + 0x60]
mov eax, 2
push dword [esp + 0x44]
test edx, edx
mov esi, 0x80000002
cmovne eax, esi
push eax
mov eax, dword [esp + 0x6c]
push ebx
push eax
push ecx
call sub.gdal111.dll_OGR_DS_CreateLayer
mov edi, eax
add esp, 0x14
test edi, edi
jne 0x401664
push 1
call dword [sym.imp.MSVCR120.dll_exit]
push 0
push 0x4066e0
call sub.gdal111.dll_OGR_Fld_Create
mov esi, eax
push 8
push esi
call sub.gdal111.dll_OGR_Fld_SetWidth
push 0
push esi
push edi
call sub.gdal111.dll_OGR_L_CreateField
push esi
call sub.gdal111.dll_OGR_Fld_Destroy
mov eax, dword [esp + 0x7c]
add esp, 0x20
test eax, eax
je 0x4016dc
push 2
push eax
call sub.gdal111.dll_OGR_Fld_Create
mov esi, eax
push 0xc
push esi
call sub.gdal111.dll_OGR_Fld_SetWidth
push 3
push esi
call sub.gdal111.dll_OGR_Fld_SetPrecision
push 0
push esi
push edi
call sub.gdal111.dll_OGR_L_CreateField
push esi
call sub.gdal111.dll_OGR_Fld_Destroy
mov eax, dword [esp + 0x84]
add esp, 0x28
push eax
push edi
call sub.gdal111.dll_OGR_L_GetLayerDefn
add esp, 4
push eax
call sub.gdal111.dll_OGR_FD_GetFieldIndex
add esp, 8
jmp 0x4016df
or eax, 0xffffffff
mov ecx, dword [esp + 0x3c]
push 0
push ecx
push eax
push 0x4066e4
push edi
call sub.gdal111.dll_OGR_L_GetLayerDefn
add esp, 4
push eax
call sub.gdal111.dll_OGR_FD_GetFieldIndex
movsd xmm0, qword [esp + 0x84]
add esp, 8
movsd xmm1, qword [esp + 0x3c]
push eax
push edi
sub esp, 8
lea eax, [esp + 0x94]
movsd qword [esp], xmm0
push dword [esp + 0x70]
movsd xmm0, qword [esp + 0x88]
push eax
push dword [esp + 0x5c]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
push dword [esp + 0x80]
call sub.gdal111.dll_GDALContourGenerate
push dword [esp + 0x7c]
call sub.gdal111.dll_OGR_DS_Destroy
add esp, 0x40
push dword [esp + 0x50]
call sub.gdal111.dll__GDALClose_4
test ebx, ebx
je 0x401769
push ebx
call sub.gdal111.dll__OSRDestroySpatialReference_4
push dword [esp + 0x24]
call sub.gdal111.dll__CSLDestroy_4
push dword [esp + 0x4c]
call sub.gdal111.dll__CSLDestroy_4
push dword [esp + 0x44]
call sub.gdal111.dll__CSLDestroy_4
call sub.gdal111.dll__GDALDestroyDriverManager_0
call sub.gdal111.dll_OGRCleanupAll
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1fb0]
xor ecx, esp
call fcn.00405580
mov esp, ebp
pop ebp
ret
push str.Usage:_gdal_contour___b__band_____a__attribute_name_____3d____inodata__n______________________snodata_n____f__formatname_____i__interval___n______________________f__formatname______dsco_NAMEVALUE__..._____lco_NAMEVALUE__...__n______________________off__offset_____fl__level___level_...__n______________________nln__outlayername_____q__n_____________________src_filename___dst_filename__n
call dword [sym.imp.MSVCR120.dll_printf]
add esp, 4
push 1
call dword [sym.imp.MSVCR120.dll_exit]
push str.RELEASE_NAME
call sub.gdal111.dll__GDALVersionInfo_4
push eax
mov eax, dword [esp + 0x28]
push str.1.11.3
push dword [eax]
push str._s_was_compiled_against_GDAL__s_and_is_running_against_GDAL__s_n
call dword [sym.imp.MSVCR120.dll_printf]
mov ecx, dword [esp + 0x1fcc]
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00405580
mov esp, ebp
pop ebp
ret
push str.Missing_source_filename.
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x406454
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x406480
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x4064a8
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push dword [eax + esi*4]
push str._s_option_requires_at_least_1_argument
call sub.gdal111.dll_CPLSPrintf
add esp, 8
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x4064fc
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x406524
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x406550
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x40657c
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push 0x4065b0
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
mov eax, dword [esp + 0x24]
push 1
push dword [eax + esi*4]
push str._s_option_requires__d_argument_s_
call sub.gdal111.dll_CPLSPrintf
add esp, 0xc
push eax
call fcn.00401050
push str.Too_many_command_options.
call fcn.00401050
push str.Missing_destination_filename.
call fcn.00401050
push str.Neither__i_nor__fl_are_specified.
call fcn.00401050
int3