Function at 0x402350
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x412b81
mov eax, dword fs:[0]
push eax
sub esp, 0x168
mov eax, dword [0x418084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ecx, 0x81
lea ebx, [ebp - 0x130]
mov dword [ebp - 0x16c], eax
call section..text
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [ebp - 0x120], ebx
jbe 0x40275a
mov byte [ebp - 0x170], 0x20
nop
lea ecx, [ebp - 0x170]
push ecx
lea edx, [ebp - 0x130]
push edx
xor ecx, ecx
call fcn.00403f20
mov edi, eax
mov dword [ebp - 0x174], edi
cmp edi, 0xffffffff
jne 0x4023e0
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x174], eax
mov edi, eax
push edi
lea ecx, [ebp - 0x130]
push ecx
xor ebx, ebx
lea esi, [ebp - 0x14c]
call fcn.00403d40
mov esi, eax
mov eax, dword [ebp - 0x16c]
mov byte [ebp - 4], 1
mov ecx, dword [eax + 4]
cmp esi, ecx
jae 0x402548
mov edi, dword [eax]
cmp edi, esi
ja 0x402542
sub esi, edi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [ebp - 0x16c]
mov esi, dword [edx + 8]
cmp ecx, esi
jne 0x40249a
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x9249248
ja 0x40281d
sub esi, edi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x40249a
mov edx, eax
shr edx, 1
mov esi, 0x9249249
sub esi, edx
cmp esi, eax
jae 0x402486
xor eax, eax
jmp 0x402488
add eax, edx
cmp eax, ecx
jae 0x40248e
mov eax, ecx
mov ecx, dword [ebp - 0x16c]
push eax
call fcn.004044c0
mov eax, dword [ebp - 0x16c]
mov edx, dword [eax]
mov esi, dword [eax + 4]
lea ecx, [ebx*8]
sub ecx, ebx
lea ebx, [edx + ecx*4]
test esi, esi
je 0x402537
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp esi, ebx
je 0x402537
mov edi, 0x10
cmp dword [esi + 0x14], edi
jb 0x4024e3
mov eax, dword [esi]
push eax
call fcn.0040554a
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
cmp dword [ebx + 0x14], edi
jae 0x40250a
mov eax, dword [ebx + 0x10]
inc eax
push eax
push ebx
push esi
call fcn.00405560
add esp, 0xc
jmp 0x402514
mov eax, dword [ebx]
mov dword [esi], eax
mov dword [ebx], 0
mov ecx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x16c]
mov dword [esi + 0x10], ecx
mov edx, dword [ebx + 0x14]
mov dword [esi + 0x14], edx
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
mov edi, dword [ebp - 0x174]
jmp 0x40264b
mov edi, dword [ebp - 0x174]
mov ebx, dword [eax + 8]
cmp ecx, ebx
jne 0x4025bf
mov edi, dword [eax]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x9249248
ja 0x40281d
sub ebx, edi
mov eax, 0x92492493
imul ebx
add edx, ebx
sar edx, 4
mov eax, edx
shr eax, 0x1f
inc ecx
add eax, edx
cmp ecx, eax
jbe 0x4025b3
mov edx, eax
shr edx, 1
mov edi, 0x9249249
sub edi, edx
cmp edi, eax
jae 0x40259f
xor eax, eax
jmp 0x4025a1
add eax, edx
cmp eax, ecx
jae 0x4025a7
mov eax, ecx
mov ecx, dword [ebp - 0x16c]
push eax
call fcn.004044c0
mov eax, dword [ebp - 0x16c]
mov edi, dword [ebp - 0x174]
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x40264b
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
cmp ebx, esi
je 0x40264b
cmp dword [ebx + 0x14], 0x10
jb 0x4025f6
mov eax, dword [ebx]
push eax
call fcn.0040554a
mov eax, dword [ebp - 0x16c]
add esp, 4
mov dword [ebx + 0x14], 0xf
mov dword [ebx + 0x10], 0
mov byte [ebx], 0
cmp dword [esi + 0x14], 0x10
jae 0x402624
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push ebx
call fcn.00405560
mov eax, dword [ebp - 0x16c]
add esp, 0xc
jmp 0x40262e
mov ecx, dword [esi]
mov dword [ebx], ecx
mov dword [esi], 0
mov edx, dword [esi + 0x10]
mov dword [ebx + 0x10], edx
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x14], ecx
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add dword [eax + 4], 0x1c
mov byte [ebp - 4], 0
cmp dword [ebp - 0x138], 0x10
jb 0x40266b
mov edx, dword [ebp - 0x14c]
push edx
call fcn.0040554a
add esp, 4
mov ecx, dword [ebp - 0x120]
cmp edi, ecx
jae 0x402699
mov edx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x130]
mov eax, esi
cmp edx, 0x10
jae 0x40268e
lea eax, [ebp - 0x130]
cmp byte [eax + edi], 0x20
jne 0x402699
inc edi
cmp edi, ecx
jb 0x402681
push 0xffffffffffffffff
lea eax, [ebp - 0x130]
push eax
mov ebx, edi
lea esi, [ebp - 0x14c]
call fcn.00403d40
mov esi, eax
lea ecx, [ebp - 0x130]
cmp ecx, esi
je 0x40272f
cmp dword [ebp - 0x11c], 0x10
jb 0x4026d3
mov edx, dword [ebp - 0x130]
push edx
call fcn.0040554a
add esp, 4
xor ebx, ebx
mov edi, 0xf
mov dword [ebp - 0x11c], edi
mov dword [ebp - 0x120], ebx
mov byte [ebp - 0x130], bl
cmp dword [esi + 0x14], 0x10
jae 0x402709
mov eax, dword [esi + 0x10]
inc eax
push eax
lea eax, [ebp - 0x130]
push esi
push eax
call fcn.00405560
add esp, 0xc
jmp 0x402713
mov ecx, dword [esi]
mov dword [ebp - 0x130], ecx
mov dword [esi], ebx
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x120], edx
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x11c], eax
mov dword [esi + 0x14], edi
mov dword [esi + 0x10], ebx
mov byte [esi], bl
jmp 0x402731
xor ebx, ebx
mov byte [ebp - 4], bl
cmp dword [ebp - 0x138], 0x10
jb 0x40274c
mov ecx, dword [ebp - 0x14c]
push ecx
call fcn.0040554a
add esp, 4
cmp dword [ebp - 0x120], ebx
ja 0x4023b0
xor ebx, ebx
push 0x103
lea edx, [ebp - 0x114]
push edx
push str.IDEA_PROPERTIES
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
test eax, eax
je 0x402827
mov edi, 0x17
mov eax, str._Didea.properties.file
lea esi, [ebp - 0x168]
mov dword [ebp - 0x154], 0xf
mov dword [ebp - 0x158], ebx
mov byte [ebp - 0x168], bl
call fcn.00404ec0
mov eax, esi
push eax
lea eax, [ebp - 0x114]
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 5
call fcn.00404820
add esp, 4
mov ebx, dword [ebp - 0x16c]
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.00403da0
mov esi, 0x10
cmp dword [ebp - 0x138], esi
jb 0x4027ec
mov ecx, dword [ebp - 0x14c]
push ecx
call fcn.0040554a
add esp, 4
xor eax, eax
mov dword [ebp - 0x138], 0xf
mov dword [ebp - 0x13c], eax
mov byte [ebp - 0x14c], al
cmp dword [ebp - 0x154], esi
jb 0x40282c
mov edx, dword [ebp - 0x168]
push edx
call fcn.0040554a
add esp, 4
jmp 0x40282c
push str.vector_T__too_long
call fcn.00405480
mov esi, 0x10
cmp dword [ebp - 0x11c], esi
jb 0x402843
mov eax, dword [ebp - 0x130]
push eax
call fcn.0040554a
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040553b
mov esp, ebp
pop ebp
ret