Function at 0x4010f0
Capabilities:
Access peb ldr_data
Get process heap flags
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x350
mov ebx, dword [ebp + 0xc]
mov edi, dword [sym.imp.ucrtbase.dll___acrt_iob_func]
mov dword [esp], 1
call edi
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__fileno]
mov dword [esp + 4], 0x8000
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll__setmode]
mov ecx, dword [ebx + 4]
lea eax, [ebx + 4]
mov dword [ebp - 0x31c], eax
test ecx, ecx
je 0x4015a6
mov dword [ebp - 0x324], edi
mov edi, eax
mov eax, ecx
mov dword [ebp - 0x330], 0
mov dword [ebp - 0x320], 1
jmp 0x401185
add dword [ebp - 0x320], 1
mov eax, dword [ebp - 0x320]
mov ecx, 1
lea edi, [eax*4]
add edi, ebx
mov eax, dword [edi]
test eax, eax
je 0x4011e6
test cl, cl
je 0x4011e6
cmp word [eax], 0x2d
jne 0x401160
movzx esi, word [eax + 2]
cmp si, 0x2d
jne 0x401573
cmp word [eax + 4], 0
mov ecx, 1
jne 0x401835
mov edi, dword [ebp - 0x320]
xor ecx, 1
and ecx, 1
lea esi, [ebx + edi*4]
lea eax, [edi + 1]
mov edx, dword [esi]
test edx, edx
je 0x401942
shl edi, 2
sub esi, edi
lea esi, [esi]
mov edx, dword [ebx + eax*4]
mov dword [esi + eax*4 - 4], edx
add eax, 1
test edx, edx
jne 0x4011d0
add edi, ebx
mov eax, dword [edi]
test eax, eax
jne 0x401181
mov eax, dword [ebp - 0x330]
mov edi, dword [ebp - 0x324]
mov dword [ebp - 0x324], 0xa
test al, 0x10
je 0x401211
xor eax, 0x10
xor ecx, ecx
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x324], ecx
mov eax, dword [ebp - 0x330]
test eax, eax
je 0x4015b0
xor edx, edx
and eax, 4
mov dword [ebp - 0x320], edx
mov dword [ebp - 0x32c], eax
jne 0x401aaf
mov eax, dword [ebp - 0x330]
xor ecx, ecx
and eax, 8
mov dword [ebp - 0x328], eax
jne 0x4018b4
mov edi, dword [ebp - 0x330]
mov eax, dword [ebx + 4]
mov edx, edi
and edi, 1
and edx, 2
mov dword [ebp - 0x334], edi
mov dword [ebp - 0x330], edx
test eax, eax
je 0x4016f6
mov dword [ebp - 0x338], ecx
jmp 0x4012c1
mov eax, dword [ebp - 0x334]
test eax, eax
jne 0x401326
mov ecx, dword [ebp - 0x32c]
test ecx, ecx
jne 0x401382
mov eax, dword [ebp - 0x328]
test eax, eax
jne 0x40142b
add dword [ebp - 0x31c], 4
mov eax, dword [ebp - 0x31c]
mov eax, dword [eax]
test eax, eax
je 0x4016f6
mov edx, dword [ebp - 0x330]
mov byte [ebp - 0x318], 0
test edx, edx
je 0x401280
lea esi, [ebp - 0x214]
mov dword [esp], eax
lea ebx, [ebp - 0x318]
mov dword [esp + 8], 0x104
mov dword [esp + 4], esi
call dword [sym.imp.kernel32.dll_GetLongPathNameW]
sub esp, 0xc
test eax, eax
jne 0x401701
mov eax, dword [ebp - 0x324]
mov dword [esp + 4], ebx
mov dword [esp], str._s_c
mov dword [esp + 8], eax
call sym._printf
mov eax, dword [ebp - 0x334]
test eax, eax
je 0x40128e
mov eax, dword [ebp - 0x31c]
lea esi, [ebp - 0x214]
mov dword [esp + 8], 0x104
lea ebx, [ebp - 0x318]
mov dword [esp + 4], esi
mov eax, dword [eax]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetShortPathNameW]
sub esp, 0xc
test eax, eax
jne 0x40173e
mov eax, dword [ebp - 0x324]
mov dword [esp + 4], ebx
mov dword [esp], str._s_c
mov dword [esp + 8], eax
call sym._printf
mov ecx, dword [ebp - 0x32c]
test ecx, ecx
je 0x40129c
mov eax, dword [ebp - 0x31c]
mov edi, dword [eax]
cmp word [edi], 0
mov ebx, edi
je 0x4013a1
lea esi, [esi]
add ebx, 2
cmp word [ebx], 0
jne 0x401398
sub ebx, edi
lea eax, [ebx + 2]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov esi, eax
xor eax, eax
lea esi, cs:[esi]
movzx edx, word [edi + eax]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x4013b8
mov dword [esp], esi
mov eax, dword [ebp - 0x320]
add ebx, esi
call eax
mov edx, eax
test eax, eax
je 0x4013fa
jmp 0x401917
movzx eax, word [ebx]
cmp ax, 0x2f
je 0x401660
cmp ax, 0x5c
je 0x401660
sub ebx, 2
cmp esi, ebx
jne 0x4013e0
mov eax, dword [ebp - 0x324]
mov dword [esp], 0x405121
mov dword [esp + 4], eax
call sym._printf
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x328]
test eax, eax
je 0x4012aa
mov eax, dword [ebp - 0x31c]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov edi, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [eax]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0xfdf2
call edi
sub esp, 0x20
mov ebx, eax
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
mov esi, eax
mov eax, dword [ebp - 0x31c]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], ebx
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [eax]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0xfdf2
call edi
mov eax, dword [ebp - 0x338]
sub esp, 0x20
mov dword [esp], esi
call eax
test eax, eax
je 0x40177b
lea ebx, [ebp - 0x318]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [ebp - 0x33c], eax
mov dword [esp + 4], 0
mov dword [esp], 0xfdf2
call edi
mov eax, dword [ebp - 0x324]
sub esp, 0x20
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], str._s_c
call sym._printf
mov edx, dword [ebp - 0x33c]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x4012aa
mov ecx, dword [ebp - 0x330]
add eax, 4
test si, si
je 0x401649
cmp si, 0x30
je 0x401796
lea edx, [esi - 0x68]
cmp dx, 0xf
ja case.0x40159f.1
movzx edx, dx
jmp dword [edx*4 + 0x40512c]
mov dword [ebp - 0x324], 0xa
mov dword [esp], str.KERNEL32
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
push edx
mov dword [esp + 4], str.wine_get_unix_file_name
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebp - 0x320], eax
push ecx
push ecx
test eax, eax
je 0x401ae8
mov dword [ebp - 0x330], 4
xor eax, eax
xor ecx, ecx
mov dword [ebp - 0x32c], 4
mov dword [ebp - 0x328], eax
jmp 0x40124d
mov dword [esp + 4], str.winepath
xor ebx, ebx
mov dword [esp], str.Usage:__s__OPTION___PATH_..._n
call sym._printf
mov dword [esp], str.Convert_PATH_s__to_Unix_or_Windows_long_or_short_paths._n_n___u____unix____converts_a_Windows_path_to_a_Unix_path_n___w____windows_converts_a_Unix_path_to_a_long_Windows_path_n___l____long____converts_the_short_Windows_path_of_an_existing_file_or_n________________directory_to_the_long_format_n___s____short___converts_the_long_Windows_path_of_an_existing_file_or_n________________directory_to_the_short_format_n___0____________separate_output_with_0_character__instead_of_a_newline_n___h____help____output_this_help_message_and_exit_n_nIf_more_than_one_option_is_given_then_the_input_paths_are_output_in_nall_formats_specified__in_the_order_long__short__Unix__Windows._nIf_no_option_is_given_the_default_is_Unix_format._n
call sym._printf
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_exit]
mov edx, 8
movzx esi, word [eax]
add eax, 2
or ecx, edx
test si, si
jne 0x401585
mov dword [ebp - 0x330], ecx
xor ecx, ecx
jmp 0x4011a9
mov edx, 2
jmp 0x401632
movzx eax, word [ebx + 2]
lea edi, [ebx + 2]
mov ecx, edi
cmp ax, 0x2a
je 0x4016a6
test ax, ax
je 0x4016af
cmp ax, 0x3e
je 0x4013fe
ja 0x4016e0
cmp ax, 0x22
je 0x4013fe
cmp ax, 0x3c
je 0x4013fe
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
je 0x4016af
cmp ax, 0x2a
jne 0x401674
test ax, ax
jne 0x4013fe
test edx, edx
je 0x4016bb
mov eax, 0x2f
mov word [edx], ax
xor eax, eax
mov word [ebx], ax
mov eax, dword [ebp - 0x320]
mov dword [esp], esi
call eax
test eax, eax
jne 0x4017a0
mov edx, ebx
jmp 0x4013fa
cmp ax, 0x3f
je 0x4013fe
cmp ax, 0x7c
je 0x4013fe
jmp 0x401694
xor ecx, ecx
mov dword [esp], ecx
call dword [sym.imp.ucrtbase.dll_exit]
xor eax, eax
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
xor eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 0xfdf2
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
sub esp, 0x20
jmp 0x4012fe
xor edi, edi
xor eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov dword [esp], 0xfdf2
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
sub esp, 0x20
jmp 0x40135a
mov eax, dword [ebp - 0x324]
mov dword [esp], 0x405121
mov dword [esp + 4], eax
call sym._printf
jmp 0x401565
mov edx, 0x10
jmp 0x401632
xor ebx, ebx
mov dword [esp + 8], edi
xor edi, edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
lea ebx, [ebp - 0x318]
mov dword [ebp - 0x33c], eax
mov dword [esp + 0x14], 0x104
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], edi
mov dword [esp], 0xfdf2
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov edx, dword [ebp - 0x33c]
mov eax, dword [ebp - 0x324]
sub esp, 0x20
mov dword [esp + 4], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp], str._s__s_c
call sym._printf
mov edx, dword [ebp - 0x33c]
mov dword [esp + 8], edx
xor edx, edx
mov dword [esp + 4], edx
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
sub esp, 0xc
jmp 0x401414
xor edx, edx
mov dword [ebp + 0xc], ebx
mov esi, str.long
mov ebx, edi
mov edi, edx
jmp 0x40185a
add edi, 1
mov esi, dword [edi*4 + 0x4054b8]
test esi, esi
je 0x40194e
mov dword [esp + 4], esi
mov eax, dword [ebx]
add eax, 4
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
sub esp, 8
test eax, eax
jne 0x401848
movzx esi, word [esi]
mov edi, ebx
mov ecx, eax
mov ebx, dword [ebp + 0xc]
mov edx, dword [edi]
cmp si, 0x30
je 0x401b3b
lea eax, [esi - 0x68]
cmp ax, 0xf
ja case.0x401899.1
movzx eax, ax
jmp dword [eax*4 + 0x40516c]
mov edx, 1
jmp 0x401632
mov edx, 4
jmp 0x401632
mov dword [esp], str.KERNEL32
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
push esi
mov dword [esp + 4], str.wine_get_dos_file_name
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebp - 0x328], 8
push edx
mov ecx, eax
push edx
test eax, eax
jne 0x40124d
mov dword [esp], 2
call edi
mov dword [esp + 8], str.winepath
mov dword [esp + 4], str._s:_cannot_get_the_address_of_wine_get_dos_file_name_n
mov dword [esp], eax
call sym._fprintf
mov dword [esp], 3
call dword [sym.imp.ucrtbase.dll_exit]
mov eax, dword [ebp - 0x324]
mov dword [esp + 4], edx
mov dword [esp], str._s_c
mov dword [esp + 8], eax
mov dword [ebp - 0x33c], edx
call sym._printf
mov edx, dword [ebp - 0x33c]
jmp 0x40180e
lea edi, [edi*4]
jmp 0x401179
mov ebx, dword [ebp + 0xc]
xor ecx, ecx
jmp 0x4011a9
mov dword [esp], 2
mov edi, dword [ebp - 0x324]
call edi
mov dword [esp + 8], str.winepath
mov dword [esp + 4], str._s:_invalid_option
mov dword [esp], eax
call sym._fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], esi
mov dword [esp + 4], str.__c_n
mov dword [esp], eax
call sym._fprintf
mov dword [esp], 2
call edi
mov dword [esp + 8], str.winepath
mov dword [esp + 4], str.Try__s___help_for_help_n
mov dword [esp], eax
call sym._fprintf
mov dword [esp], 2
call dword [sym.imp.ucrtbase.dll_exit]
mov dword [ebp - 0x31c], edx
mov edi, dword [ebp - 0x324]
mov dword [esp], 2
call edi
mov dword [esp + 8], str.winepath
mov dword [esp + 4], str._s:_invalid_option
mov dword [esp], eax
call sym._fprintf
mov ecx, dword [ebp - 0x31c]
test ecx, ecx
je 0x401c62
mov eax, ecx
shr eax, 0x10
je 0x401c4b
mov dword [esp], ecx
mov dword [ebp - 0x31c], ecx
mov dword [esp + 4], 0xffffffff
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
test eax, eax
push ecx
mov ebx, eax
push ecx
mov ecx, dword [ebp - 0x31c]
je 0x401a3d
jmp 0x401b42
add ebx, 1
cmp word [ecx + ebx*2], 0
jne 0x401a3a
mov word [ebp - 0x214], 0x224c
lea eax, [ebp - 0x212]
mov dword [ebp - 0x31c], ecx
sub ebx, 1
jb 0x401c43
lea ecx, [ebp - 0xf2]
cmp ecx, eax
jb 0x401c17
add dword [ebp - 0x31c], 2
mov ecx, dword [ebp - 0x31c]
movzx edx, word [ecx - 2]
cmp dx, 0xd
je 0x401be0
ja 0x401bc7
cmp dx, 9
je 0x401bba
cmp dx, 0xa
jne 0x401b69
mov word [eax], 0x6e5c
add eax, 2
jmp 0x401a59
mov dword [esp], str.KERNEL32
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
push ecx
mov dword [esp + 4], str.wine_get_unix_file_name
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebp - 0x32c], 4
push esi
mov dword [ebp - 0x320], eax
push esi
test eax, eax
jne 0x401236
mov dword [esp], 2
call edi
mov dword [esp + 8], str.winepath
mov dword [esp + 4], str._s:_cannot_get_the_address_of_wine_get_unix_file_name_n
mov dword [esp], eax
call sym._fprintf
mov dword [esp], 3
call dword [sym.imp.ucrtbase.dll_exit]
mov eax, 8
or dword [ebp - 0x330], eax
jmp 0x4011a9
mov eax, 2
jmp 0x401b1b
mov eax, 4
jmp 0x401b1b
mov eax, 1
jmp 0x401b1b
mov eax, 0x10
jmp 0x401b1b
mov ebx, str._invalid_
mov dword [esp], 2
call edi
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x40504c
mov dword [esp], eax
call sym._fprintf
jmp 0x40199c
mov esi, edx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ecx, byte [esi + str.0123456789abcdef]
mov esi, edx
shr si, 8
and esi, 0xf
mov byte [eax - 4], cl
movzx ecx, byte [esi + str.0123456789abcdef]
mov esi, edx
and edx, 0xf
shr si, 4
movzx edx, byte [edx + str.0123456789abcdef]
and esi, 0xf
mov byte [eax - 3], cl
movzx ecx, byte [esi + str.0123456789abcdef]
mov byte [eax - 1], dl
mov byte [eax - 2], cl
jmp 0x401a59
mov word [eax], 0x745c
add eax, 2
jmp 0x401a59
cmp dx, 0x22
je 0x401c0a
cmp dx, 0x5c
jne 0x401bf3
mov word [eax], 0x5c5c
add eax, 2
jmp 0x401a59
movzx ecx, word [0x4054da]
add eax, 2
mov word [eax - 2], cx
jmp 0x401a59
lea esi, [edx - 0x20]
cmp si, 0x5e
ja 0x401b69
mov byte [eax], dl
add eax, 1
jmp 0x401a59
mov word [eax], 0x225c
add eax, 2
jmp 0x401a59
mov byte [eax], 0x22
test ebx, ebx
je 0x401c46
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x214]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov ebx, eax
jmp 0x401b47
mov byte [eax], 0x22
lea edx, [eax + 1]
jmp 0x401c2b
mov dword [esp + 4], ecx
mov dword [esp], str._04x
call sym._wine_dbg_sprintf.constprop.0
mov ebx, eax
jmp 0x401b47
mov dword [esp], 2
movzx esi, si
call edi
jmp 0x401988