Function at 0x10014823
Capabilities:
Get common file path

Disassembly:
mov eax, dword [0x1002f9f4]
sub esp, 0x254
test eax, eax
je 0x10014705
mov eax, dword [0x10039288]
mov dword [0x1002f9f4], 0
test eax, eax
jne 0x100146bc
mov dword [0x10039288], 1
mov eax, dword [0x1003928c]
test eax, eax
jne 0x100146cf
mov eax, 0x1002fed8
mov dword [0x1003928c], eax
mov ecx, dword [0x10039290]
test ecx, ecx
jne 0x100146e3
mov dword [0x10039290], 0x1002fef8
mov ecx, dword [0x10039280]
test ecx, ecx
jne 0x10014700
push 0x4000
push eax
call fcn.10015ab0
add esp, 8
mov dword [0x10039280], eax
call fcn.10015a80
push ebx
push ebp
push esi
push edi
mov edi, dword [0x10039284]
mov al, byte [0x1003926c]
mov ebx, edi
mov byte [edi], al
mov esi, dword [0x10039288]
xor ecx, ecx
mov cl, byte [edi]
mov dl, byte [ecx*4 + 0x100221b4]
lea ecx, [esi + esi]
mov byte [esp + 0x10], dl
cmp word [ecx + 0x100217ac], 0
je 0x10014746
mov dword [0x1003927c], esi
mov dword [0x10039274], edi
mov edx, dword [esp + 0x10]
movsx ebp, word [ecx + 0x10022688]
mov eax, edx
and eax, 0xff
add ebp, eax
movsx ebp, word [ebp*2 + 0x10027448]
cmp ebp, esi
je 0x100147a3
movsx esi, word [ecx + 0x1002337c]
cmp esi, 0x504
jl 0x10014784
mov al, byte [eax*4 + 0x100225b4]
mov byte [esp + 0x10], al
mov edx, dword [esp + 0x10]
lea ecx, [esi + esi]
mov eax, edx
and eax, 0xff
movsx ebp, word [ecx + 0x10022688]
add ebp, eax
movsx ebp, word [ebp*2 + 0x10027448]
cmp ebp, esi
jne 0x10014766
movsx ecx, word [esi*2 + 0x10022688]
and edx, 0xff
add ecx, edx
inc edi
movsx esi, word [ecx*2 + 0x10024070]
cmp word [esi*2 + 0x10022688], 0x19b6
jne 0x1001471e
movsx eax, word [esi*2 + 0x100217ac]
test eax, eax
jne 0x100147ec
mov edx, dword [0x1003927c]
mov edi, dword [0x10039274]
movsx eax, word [edx*2 + 0x100217ac]
mov ecx, edi
mov dword [0x10039e8c], ebx
sub ecx, ebx
mov dword [0x10039e90], ecx
mov dl, byte [edi]
mov byte [0x1003926c], dl
mov byte [edi], 0
mov ebp, dword [0x10039e8c]
mov dword [0x10039284], edi
cmp eax, 0x7c
ja case.default.0x1001481c
jmp dword [eax*4 + 0x100153fc]
mov al, byte [0x1003926c]
mov esi, edi
mov byte [edi], al
mov eax, dword [0x10039280]
sub esi, ebp
mov ecx, dword [eax + 0x24]
dec esi
test ecx, ecx
jne 0x1001485d
mov ecx, dword [eax + 0x10]
mov edx, dword [0x1003928c]
mov dword [0x10039270], ecx
mov dword [eax], edx
mov eax, dword [0x10039280]
mov dword [eax + 0x24], 1
mov eax, dword [0x10039280]
mov ecx, dword [eax + 4]
mov edx, dword [0x10039270]
mov eax, dword [0x10039284]
add ecx, edx
cmp eax, ecx
jbe 0x1001490c
call fcn.100155f0
sub eax, 0
je 0x1001494d
dec eax
jne 0x100148bf
mov dword [0x10039268], 0
call fcn.10015d80
test eax, eax
je 0x10014be2
mov edx, dword [0x10039288]
mov ebp, dword [0x10039e8c]
mov dword [0x10039284], ebp
lea eax, [edx - 1]
cdq
sub eax, edx
sar eax, 1
add eax, 0x7c
jmp 0x10014813
dec eax
jne case.0x1001481c.80
mov edx, dword [0x10039280]
mov ecx, dword [0x10039270]
mov eax, dword [edx + 4]
add eax, ecx
mov dword [0x10039284], eax
call fcn.10015850
mov edi, dword [0x10039284]
mov ebx, dword [0x10039e8c]
mov esi, eax
jmp 0x100147cc
mov al, byte [0x1003926c]
mov byte [edi], al
mov edi, dword [0x10039274]
mov esi, dword [0x1003927c]
jmp 0x100147cc
mov ecx, dword [0x10039e8c]
add ecx, esi
mov dword [0x10039284], ecx
call fcn.10015850
mov esi, eax
push esi
call fcn.10015930
mov ebx, dword [0x10039e8c]
mov edi, dword [0x10039284]
add esp, 4
test eax, eax
jne 0x1001493f
jmp 0x100147cc
inc edi
mov esi, eax
mov dword [0x10039284], edi
jmp 0x1001471e
mov ecx, dword [0x10039e8c]
add ecx, esi
mov dword [0x10039284], ecx
call fcn.10015850
mov edi, dword [0x10039284]
mov ebx, dword [0x10039e8c]
mov esi, eax
jmp 0x1001471e
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x30]
mov ebx, ebp
rep stosd dword es:[edi], eax
mov eax, dword [0x10032c38]
mov dword [esp + 0x34], 0x17
test eax, eax
mov dword [esp + 0x30], 4
jne 0x10014b50
mov eax, dword [0x10032c28]
mov dword [esp + 0x14], str.getaddrinfo
test eax, eax
mov dword [esp + 0x18], 0x100026b0
mov dword [esp + 0x1c], str.getnameinfo
mov dword [esp + 0x20], 0x100033f0
mov dword [esp + 0x24], str.freeaddrinfo
mov dword [esp + 0x28], 0x10002660
jne 0x10014b46
lea edx, [esp + 0x15c]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x10014b3c
lea edi, [esp + 0x15c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x50]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x50]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.ws2_32
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
mov ebp, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
and ecx, 3
lea eax, [esp + 0x50]
rep movsb byte es:[edi], byte [esi]
push eax
call ebp
mov esi, eax
test esi, esi
je 0x10014a7b
push str.getaddrinfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10014af7
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edi, [esp + 0x15c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x50]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x50]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.wship6
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x50]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call ebp
mov esi, eax
test esi, esi
je 0x10014b3c
push str.getaddrinfo
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x10014af7
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x10014b3c
mov ecx, dword [0x100201f0]
xor ebp, ebp
test ecx, ecx
jle 0x10014b26
lea edi, [esp + 0x18]
mov ecx, dword [edi - 4]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
mov dword [edi], eax
je 0x10014aee
mov ecx, dword [0x100201f0]
inc ebp
add edi, 8
cmp ebp, ecx
jl 0x10014b07
xor eax, eax
test ecx, ecx
jle 0x10014b3c
mov edx, dword [esp + eax*8 + 0x18]
mov dword [eax*8 + 0x1002d24c], edx
inc eax
cmp eax, ecx
jl 0x10014b2c
mov dword [0x10032c28], 1
mov eax, dword [0x1002d24c]
mov dword [0x10032c38], eax
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x30]
push ecx
push edx
push 0
push ebx
call eax
mov esi, eax
push esi
call dword [sym.imp.WS2_32.dll_WSASetLastError]
test esi, esi
je 0x100151bd
mov eax, dword [0x10039e8c]
push eax
push str.bogus_IPv6_address__s
call fcn.1000ab20
add esp, 8
jmp case.0x1001481c.80
push ebp
push str.bogus_ethernet_address__s
call fcn.1000ab20
add esp, 8
jmp case.0x1001481c.80
push ebp
push str.illegal_token:__s
call fcn.1000ab20
add esp, 8
jmp case.0x1001481c.80
movsx ecx, byte [ebp]
push ecx
push str.illegal_char__c
call fcn.1000ab20
add esp, 8
jmp case.0x1001481c.80
mov edx, dword [0x10039290]
mov eax, dword [0x10039e90]
push edx
push 1
push eax
push ebp
call fcn.10017968
add esp, 0x10
jmp case.0x1001481c.80
mov eax, dword [0x10039268]
test eax, eax
jne case.0x1001481c.80
mov ecx, dword [0x1003928c]
push ecx
call fcn.100159f0
add esp, 4
jmp case.0x1001481c.80
push str.fatal_flex_scanner_internal_error__no_action_found
call fcn.10015ce0
add esp, 4
jmp case.0x1001481c.80
pop edi
pop esi
pop ebp
mov eax, 0x101
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x102
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x128
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x10d
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x10e
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x10f
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x110
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x111
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x112
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x113
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x114
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x115
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x116
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x117
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x134
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x135
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x136
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x137
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x118
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x119
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x11a
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x11b
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x11c
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x11d
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x11e
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x139
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x13a
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x13c
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x13d
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x13e
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x13f
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x140
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x141
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x142
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x143
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x13b
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x144
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x145
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x146
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x103
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x105
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x106
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x107
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x10a
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x10b
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x104
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x108
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x109
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x10c
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x11f
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x120
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x156
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x155
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x21
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x133
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x122
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x123
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x138
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x147
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x148
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x149
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x14a
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x14f
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x150
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x14d
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x14e
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x14b
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x14c
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x153
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x154
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x151
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x152
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x124
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x125
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x126
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x127
pop ebx
add esp, 0x254
ret
movsx eax, byte [ebp]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x129
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x12a
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x12b
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x3d
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x131
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov eax, 0x132
pop ebx
add esp, 0x254
ret
inc ebp
push ebp
call fcn.10016260
add esp, 4
mov dword [0x10039ea0], eax
mov eax, 0x130
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
push ebp
call fcn.10015d90
add esp, 4
mov dword [0x10039ea0], eax
mov eax, 0x121
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
push ebp
call fcn.1000ab60
add esp, 4
mov dword [0x10039ea0], eax
mov eax, 0x12e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
push ebp
call fcn.10016260
add esp, 4
mov dword [0x10039ea0], eax
mov eax, 0x12d
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
mov edx, dword [0x10039e8c]
push edx
call fcn.1000ab60
add esp, 4
mov dword [0x10039ea0], eax
mov eax, 0x12f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 1
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 3
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 5
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 9
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0xa
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0xb
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0xc
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0xe
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0xf
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0x11
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0x12
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0xd
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 1
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 2
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 4
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 8
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0x10
mov eax, 0x121
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
mov dword [0x10039ea0], 0x20
mov eax, 0x121
pop ebx
add esp, 0x254
ret
inc ebp
push ebp
call fcn.1000ab60
add esp, 4
mov dword [0x10039ea0], eax
mov eax, 0x12c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x254
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x254
ret