Function at 0x1003ce0
Capabilities:
Query environment variable

Disassembly:
sub esp, 0x20
mov eax, dword [esp + 0x24]
add eax, 0xffffc33c
movzx ecx, ax
push ebx
mov bl, byte [0x115fcb0]
mov dword [esp + 4], ecx
mov al, bl
add al, byte [esp + 4]
mov dword [0x1163c74], 0x1163c78
add al, 0x20
mov ecx, 0xa
mov byte [0x115fc4e], al
jmp 0x1003d20
sub byte [ecx + str.DWqF], bl
sub ecx, 2
cmp ecx, 2
jg 0x1003d20
movzx ecx, word [0x115fca8]
movzx dx, al
sub dx, word [esp + 4]
add ecx, ecx
add dx, 0x5908
movzx eax, dx
movzx edx, byte [0x115fc3e]
mov dword [esp + 4], eax
add ecx, ecx
mov eax, 0xbb52
sub eax, ecx
cmp edx, 0x73c
mov dword [0x115fca4], eax
jne 0x1003d6e
mov byte [0x115fc4e], al
call fcn.01003b80
mov al, bl
add al, byte [esp + 4]
mov ecx, 0xa
add al, 0x20
mov byte [0x115fc4e], al
jmp 0x1003d90
sub byte [ecx + str.DWqF], bl
sub ecx, 2
cmp ecx, 2
jg 0x1003d90
movzx dx, byte [0x115fc41]
movzx cx, al
sub cx, 0x44ae
add word [esp + 4], cx
cmp dx, 0x7ea
mov edx, dword [0x115fca4]
mov dword [0x115fccc], 0x115e1bc
ja 0x1003dd9
mov byte [0x115fc44], al
mov al, dl
sub al, 0x10
mov byte [0x115fc4e], al
mov ecx, dword [esp + 4]
lea eax, [edx + ecx + 0x20]
movzx ecx, byte [0x115fc3e]
cmp ecx, 0x73c
mov word [0x115fca8], ax
jne 0x1003dff
mov al, byte [esp + 4]
mov byte [0x115fc4e], al
push ebp
push esi
push edi
call fcn.01003a80
mov cl, byte [0x115fc4e]
mov ebp, dword [0x115fcb0]
sub ebp, dword [0x115fca8]
movzx esi, byte [0x115fc3e]
movzx dx, cl
add dx, 6
add word [esp + 0x10], dx
movzx ebx, ax
add ebp, 0x4f6
cmp esi, 0x73c
mov dword [esp + 0x14], ebx
mov word [0x115fca8], bp
jne 0x1003e4d
mov cl, byte [esp + 0x10]
mov ax, word [esp + 0x10]
movzx dx, cl
add dx, 6
add ax, dx
cmp esi, 0x73c
mov word [esp + 0x10], ax
movzx edx, bp
movzx eax, ax
lea eax, [edx + eax + 0xbb52]
cdq
mov dword [esp + 0x24], 0x10
mov dword [0x115fcb0], eax
mov dword [0x115fcb4], edx
mov dword [esp + 0x20], 0xc4
jne 0x1003e97
mov cl, byte [esp + 0x10]
movzx ax, cl
mov ecx, dword [esp + 0x10]
imul ecx, ecx, 0x4d
mov edx, eax
sub edx, ecx
movzx ecx, dx
mov dword [esp + 0x10], ecx
movzx ecx, byte [0x115fc44]
sub ecx, 9
je 0x1003ed6
sub ecx, 0x12
je 0x1003ec9
sub ecx, 0x7b
jne 0x1003ef0
lea ebp, [eax + ebx + 0x20]
jmp 0x1003edd
sub eax, dword [0x115fca8]
add eax, ebx
mov bp, ax
jmp 0x1003edd
lea edx, [eax + ebx - 0x33]
add bp, dx
mov word [0x115fca8], bp
jmp 0x1003ef0
mov edx, dword [0x115fcb0]
mov di, word [esp + 0x10]
jmp 0x1003f00
movzx ecx, di
movzx eax, bp
sub eax, ecx
mov cl, dl
add cl, byte [esp + 0x10]
add eax, 3
add cl, 0x20
mov dword [esp + 0x1c], 0xa
mov byte [0x115fc4e], cl
mov esi, dword [esp + 0x1c]
sub byte [esi + str.DWqF], dl
sub esi, 2
cmp esi, 2
mov dword [esp + 0x1c], esi
jg 0x1003f22
cmp dword [0x115fccc], 0x77
mov dl, byte [0x115fca8]
jae 0x1003f6c
movzx si, byte [0x115fc41]
cmp si, bx
mov eax, 0x797
ja 0x1003f6c
mov byte [0x115fc44], cl
mov cl, dl
add cl, bl
add cl, 6
mov byte [0x115fc4e], cl
movzx edi, byte [0x115fc3e]
movzx esi, byte [0x115fc3a]
add esi, edi
cmp esi, 0x111
mov dword [esp + 0x18], esi
jne 0x1003f9c
movzx dx, cl
sub dx, bx
add dx, 3
mov word [0x115fca8], dx
jmp 0x1003fa4
mov cl, dl
mov byte [0x115fc4e], cl
xor edx, edx
test bx, bx
mov ebx, dword [esp + 0x14]
sete dl
movzx esi, dx
test si, si
mov dword [esp + 0x10], esi
je 0x1003fe6
mov edx, eax
sub edx, dword [0x115fca8]
add edx, esi
cmp edi, 0x73c
mov word [0x115fca8], dx
jne 0x1004006
mov dword [0x115fcb0], eax
mov dword [0x115fcb4], 0
jmp 0x1004006
movzx dx, byte [0x115fc41]
cmp dx, bx
ja 0x1004006
mov byte [0x115fc44], cl
mov cl, al
add cl, bl
add cl, 6
mov byte [0x115fc4e], cl
cmp edi, 0x73c
movzx dx, cl
lea esi, [esi + edx + 6]
mov dword [esp + 0x10], esi
jne 0x1004020
mov word [0x115fca8], ax
mov di, word [esp + 0x10]
xor eax, eax
test di, di
sete al
mov ebp, eax
test ebp, ebp
mov dword [0x115fca4], ebp
je 0x100409c
lea eax, [esi + ebp + 6]
mov word [0x115fca8], ax
movzx eax, di
cmp ebp, eax
jbe 0x1004064
mov eax, ebp
sub eax, dword [0x115fca8]
add eax, esi
imul esi, esi, 0x4d
mov word [0x115fca8], ax
mov eax, edx
sub eax, esi
movzx esi, ax
cmp byte [0x115fc41], cl
lea edx, [edx + esi*2 - 0x33]
movzx esi, dx
mov dword [esp + 0x10], esi
mov di, si
ja 0x10040b2
mov al, byte [0x115fcb0]
movzx edx, cl
mov byte [0x115fc44], al
lea eax, [edx + ebp + 6]
mov dword [0x115fcb0], eax
mov dword [0x115fcb4], 0
jmp 0x10040b2
movzx eax, byte [0x115fc3e]
cmp eax, 0x73c
jne 0x10040b2
xor cl, cl
mov byte [0x115fc4e], cl
cmp dword [esp + 0x18], 0x111
jne 0x10040ce
movzx edx, cl
movzx eax, di
sub eax, edx
add eax, 3
mov dword [0x115fca4], eax
jmp 0x10040d8
movzx esi, bp
mov dword [esp + 0x10], esi
mov di, si
cmp dword [0x115fccc], 1
jb 0x100427d
cmp di, bx
jbe 0x100413c
movzx eax, cl
cdq
mov esi, eax
sub esi, dword [0x115fcb0]
mov ebp, edx
sbb ebp, dword [0x115fcb4]
movzx eax, di
cdq
add esi, eax
adc ebp, edx
movzx cx, cl
mov dx, 3
sub dx, cx
mov eax, esi
movzx ecx, bx
add di, dx
mov word [esp + 0x10], di
mov esi, dword [esp + 0x10]
lea edx, [ecx + eax + 0xbb52]
mov dword [0x115fcb0], eax
mov dword [0x115fcb4], ebp
mov dword [0x115fca4], edx
jmp 0x100414f
movzx eax, di
sub eax, 0x23
add dword [0x115fcb0], eax
adc dword [0x115fcb4], 0
mov ecx, dword [0x115fcb0]
push ecx
call fcn.01003740
movzx dx, byte [0x115fc41]
add esp, 4
cmp dx, di
ja 0x1004188
mov ecx, dword [0x115fca4]
mov al, byte [0x115fca8]
lea ebp, [ecx + esi + 6]
mov byte [0x115fc44], al
mov word [0x115fca8], bp
jmp 0x100418f
mov bp, word [0x115fca8]
cmp dword [0x115fca4], 0x1fce
jbe 0x10041df
movzx dx, byte [0x115fc4e]
add dx, word [0x115fca4]
add dx, 0x20
movzx ebx, dx
movzx edx, di
mov dword [esp + 0x14], ebx
call fcn.01003a80
imul esi, esi, 0x4d
mov bp, word [0x115fca8]
movzx cx, al
sub cx, si
movzx esi, cx
mov byte [0x115fc4e], al
mov dword [esp + 0x10], esi
mov di, si
jmp 0x10041e4
mov al, byte [0x115fc4e]
mov edx, dword [0x115fcb0]
sub dword [0x115fccc], 1
movzx eax, al
add eax, edx
movzx ecx, bx
lea ecx, [eax + ecx*2]
mov eax, dword [0x115fca4]
lea ecx, [eax + ecx - 0x66]
movzx eax, di
cmp ecx, eax
jae 0x1003f00
movzx ax, byte [0x115fc4e]
mov ebp, ecx
sub ebp, dword [0x115fca8]
add ebp, esi
imul esi, esi, 0x4d
sub ax, si
movzx eax, ax
mov dword [esp + 0x10], eax
movzx eax, byte [0x115fc44]
sub eax, 9
mov word [0x115fca8], bp
je 0x1003ef0
sub eax, 0x12
je 0x1003ef0
sub eax, 0x7b
je 0x1003ef0
mov eax, ecx
imul eax, eax, 0x4d
xor esi, esi
xor edi, edi
sub ecx, eax
sbb edi, esi
add ecx, 0x20
adc edi, esi
add edx, ecx
adc dword [0x115fcb4], edi
mov dword [0x115fcb0], edx
jmp 0x1003ef6
movzx eax, byte [0x115fc3e]
movzx edx, byte [0x115fc3a]
mov dword [esp + 0x1c], eax
add eax, edx
cmp eax, 0x111
mov dword [esp + 0x18], eax
jne 0x10042b7
movzx ax, cl
sub ax, word [0x115fcb0]
add ax, 3
movzx edx, ax
mov dword [esp + 0x10], edx
mov di, dx
jmp 0x10042c1
mov cl, byte [esp + 0x10]
mov byte [0x115fc4e], cl
movzx dx, byte [0x115fc42]
movzx ax, cl
sub ax, 0x44ae
add di, ax
mov eax, 1
lea esp, [esp]
movzx si, byte [eax + str.DWqF]
sub di, si
cmp bx, dx
mov word [esp + 0x10], di
mov ebp, dword [esp + 0x10]
lea esi, [ebx + ebp + 0x20]
mov word [0x115fca8], si
je 0x100430c
add eax, 2
cmp eax, 0xa
jl 0x10042e0
mov edx, dword [0x115fc74]
xor eax, eax
cmp eax, dword [0x115fcb4]
mov dword [0x115fccc], 0x115e1bc
ja 0x1004349
jb 0x1004330
cmp edx, dword [0x115fcb0]
ja 0x1004349
mov eax, dword [0x115fcb0]
movzx edx, si
lea esi, [eax + ebp + 6]
mov dword [0x115fc80], edx
mov word [0x115fca8], si
movzx edx, cl
movzx eax, bx
sub eax, edx
movzx edx, si
add eax, 3
xor ebp, ebp
cmp dword [0x115fc50], edx
mov dword [0x115fca4], eax
jb 0x1004381
movzx edx, di
imul edx, dword [0x115fc88]
mov dword [0x115fc88], edx
mov si, 0xffe0